CVE-2024-37078
Vulnerability from cvelistv5
Published
2024-06-25 14:22
Modified
2024-12-19 09:03
Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix potential kernel bug due to lack of writeback flag waiting
Destructive writes to a block device on which nilfs2 is mounted can cause
a kernel bug in the folio/page writeback start routine or writeback end
routine (__folio_start_writeback in the log below):
kernel BUG at mm/page-writeback.c:3070!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
...
RIP: 0010:__folio_start_writeback+0xbaa/0x10e0
Code: 25 ff 0f 00 00 0f 84 18 01 00 00 e8 40 ca c6 ff e9 17 f6 ff ff
e8 36 ca c6 ff 4c 89 f7 48 c7 c6 80 c0 12 84 e8 e7 b3 0f 00 90 <0f>
0b e8 1f ca c6 ff 4c 89 f7 48 c7 c6 a0 c6 12 84 e8 d0 b3 0f 00
...
Call Trace:
<TASK>
nilfs_segctor_do_construct+0x4654/0x69d0 [nilfs2]
nilfs_segctor_construct+0x181/0x6b0 [nilfs2]
nilfs_segctor_thread+0x548/0x11c0 [nilfs2]
kthread+0x2f0/0x390
ret_from_fork+0x4b/0x80
ret_from_fork_asm+0x1a/0x30
</TASK>
This is because when the log writer starts a writeback for segment summary
blocks or a super root block that use the backing device's page cache, it
does not wait for the ongoing folio/page writeback, resulting in an
inconsistent writeback state.
Fix this issue by waiting for ongoing writebacks when putting
folios/pages on the backing device into writeback state.
References
Impacted products
Vendor | Product | Version | |||||
---|---|---|---|---|---|---|---|
▼ | Linux | Linux |
Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 Version: 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453 |
||||
|
{ "containers": { "adp": [ { "providerMetadata": { "dateUpdated": "2024-08-02T03:43:50.879Z", "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE" }, "references": [ { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/95f6f81e50d858a7c9aa7c795ec14a0ac3819118" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/a75b8f493dfc48aa38c518430bd9e03b53bffebe" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/0ecfe3a92869a59668d27228dabbd7965e83567f" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/33900d7eae616647e179eee1c66ebe654ee39627" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/271dcd977ccda8c7a26e360425ae7b4db7d2ecc0" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/614d397be0cf43412b3f94a0f6460eddced8ce92" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/a4ca369ca221bb7e06c725792ac107f0e48e82e7" } ], "title": "CVE Program Container" }, { "metrics": [ { "other": { "content": { "id": "CVE-2024-37078", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "role": "CISA Coordinator", "timestamp": "2024-09-10T17:08:24.419560Z", "version": "2.0.3" }, "type": "ssvc" } } ], "providerMetadata": { "dateUpdated": "2024-09-11T17:34:43.007Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "title": "CISA ADP Vulnrichment" } ], "cna": { "affected": [ { "defaultStatus": "unaffected", "product": "Linux", "programFiles": [ "fs/nilfs2/segment.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThan": "95f6f81e50d858a7c9aa7c795ec14a0ac3819118", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "a75b8f493dfc48aa38c518430bd9e03b53bffebe", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "0ecfe3a92869a59668d27228dabbd7965e83567f", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "33900d7eae616647e179eee1c66ebe654ee39627", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "271dcd977ccda8c7a26e360425ae7b4db7d2ecc0", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "614d397be0cf43412b3f94a0f6460eddced8ce92", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" }, { "lessThan": "a4ca369ca221bb7e06c725792ac107f0e48e82e7", "status": "affected", "version": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453", "versionType": "git" } ] }, { "defaultStatus": "affected", "product": "Linux", "programFiles": [ "fs/nilfs2/segment.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "status": "affected", "version": "2.6.30" }, { "lessThan": "2.6.30", "status": "unaffected", "version": "0", "versionType": "semver" }, { "lessThanOrEqual": "4.19.*", "status": "unaffected", "version": "4.19.317", "versionType": "semver" }, { "lessThanOrEqual": "5.4.*", "status": "unaffected", "version": "5.4.279", "versionType": "semver" }, { "lessThanOrEqual": "5.10.*", "status": "unaffected", "version": "5.10.221", "versionType": "semver" }, { "lessThanOrEqual": "5.15.*", "status": "unaffected", "version": "5.15.162", "versionType": "semver" }, { "lessThanOrEqual": "6.1.*", "status": "unaffected", "version": "6.1.95", "versionType": "semver" }, { "lessThanOrEqual": "6.6.*", "status": "unaffected", "version": "6.6.35", "versionType": "semver" }, { "lessThanOrEqual": "6.9.*", "status": "unaffected", "version": "6.9.5", "versionType": "semver" }, { "lessThanOrEqual": "*", "status": "unaffected", "version": "6.10", "versionType": "original_commit_for_fix" } ] } ], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnilfs2: fix potential kernel bug due to lack of writeback flag waiting\n\nDestructive writes to a block device on which nilfs2 is mounted can cause\na kernel bug in the folio/page writeback start routine or writeback end\nroutine (__folio_start_writeback in the log below):\n\n kernel BUG at mm/page-writeback.c:3070!\n Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI\n ...\n RIP: 0010:__folio_start_writeback+0xbaa/0x10e0\n Code: 25 ff 0f 00 00 0f 84 18 01 00 00 e8 40 ca c6 ff e9 17 f6 ff ff\n e8 36 ca c6 ff 4c 89 f7 48 c7 c6 80 c0 12 84 e8 e7 b3 0f 00 90 \u003c0f\u003e\n 0b e8 1f ca c6 ff 4c 89 f7 48 c7 c6 a0 c6 12 84 e8 d0 b3 0f 00\n ...\n Call Trace:\n \u003cTASK\u003e\n nilfs_segctor_do_construct+0x4654/0x69d0 [nilfs2]\n nilfs_segctor_construct+0x181/0x6b0 [nilfs2]\n nilfs_segctor_thread+0x548/0x11c0 [nilfs2]\n kthread+0x2f0/0x390\n ret_from_fork+0x4b/0x80\n ret_from_fork_asm+0x1a/0x30\n \u003c/TASK\u003e\n\nThis is because when the log writer starts a writeback for segment summary\nblocks or a super root block that use the backing device\u0027s page cache, it\ndoes not wait for the ongoing folio/page writeback, resulting in an\ninconsistent writeback state.\n\nFix this issue by waiting for ongoing writebacks when putting\nfolios/pages on the backing device into writeback state." } ], "providerMetadata": { "dateUpdated": "2024-12-19T09:03:49.590Z", "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux" }, "references": [ { "url": "https://git.kernel.org/stable/c/95f6f81e50d858a7c9aa7c795ec14a0ac3819118" }, { "url": "https://git.kernel.org/stable/c/a75b8f493dfc48aa38c518430bd9e03b53bffebe" }, { "url": "https://git.kernel.org/stable/c/0ecfe3a92869a59668d27228dabbd7965e83567f" }, { "url": "https://git.kernel.org/stable/c/33900d7eae616647e179eee1c66ebe654ee39627" }, { "url": "https://git.kernel.org/stable/c/271dcd977ccda8c7a26e360425ae7b4db7d2ecc0" }, { "url": "https://git.kernel.org/stable/c/614d397be0cf43412b3f94a0f6460eddced8ce92" }, { "url": "https://git.kernel.org/stable/c/1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d" }, { "url": "https://git.kernel.org/stable/c/a4ca369ca221bb7e06c725792ac107f0e48e82e7" } ], "title": "nilfs2: fix potential kernel bug due to lack of writeback flag waiting", "x_generator": { "engine": "bippy-5f407fcff5a0" } } }, "cveMetadata": { "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "assignerShortName": "Linux", "cveId": "CVE-2024-37078", "datePublished": "2024-06-25T14:22:35.558Z", "dateReserved": "2024-06-24T13:54:11.068Z", "dateUpdated": "2024-12-19T09:03:49.590Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2024-37078\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-06-25T15:15:12.287\",\"lastModified\":\"2024-11-21T09:23:08.943\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnilfs2: fix potential kernel bug due to lack of writeback flag waiting\\n\\nDestructive writes to a block device on which nilfs2 is mounted can cause\\na kernel bug in the folio/page writeback start routine or writeback end\\nroutine (__folio_start_writeback in the log below):\\n\\n kernel BUG at mm/page-writeback.c:3070!\\n Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI\\n ...\\n RIP: 0010:__folio_start_writeback+0xbaa/0x10e0\\n Code: 25 ff 0f 00 00 0f 84 18 01 00 00 e8 40 ca c6 ff e9 17 f6 ff ff\\n e8 36 ca c6 ff 4c 89 f7 48 c7 c6 80 c0 12 84 e8 e7 b3 0f 00 90 \u003c0f\u003e\\n 0b e8 1f ca c6 ff 4c 89 f7 48 c7 c6 a0 c6 12 84 e8 d0 b3 0f 00\\n ...\\n Call Trace:\\n \u003cTASK\u003e\\n nilfs_segctor_do_construct+0x4654/0x69d0 [nilfs2]\\n nilfs_segctor_construct+0x181/0x6b0 [nilfs2]\\n nilfs_segctor_thread+0x548/0x11c0 [nilfs2]\\n kthread+0x2f0/0x390\\n ret_from_fork+0x4b/0x80\\n ret_from_fork_asm+0x1a/0x30\\n \u003c/TASK\u003e\\n\\nThis is because when the log writer starts a writeback for segment summary\\nblocks or a super root block that use the backing device\u0027s page cache, it\\ndoes not wait for the ongoing folio/page writeback, resulting in an\\ninconsistent writeback state.\\n\\nFix this issue by waiting for ongoing writebacks when putting\\nfolios/pages on the backing device into writeback state.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nilfs2: corrige un posible error en el kernel debido a la falta de indicador de escritura reescrita en espera Las escrituras destructivas en un dispositivo de bloque en el que est\u00e1 montado nilfs2 pueden causar un error en el kernel en la rutina de inicio de reescritura de folio/p\u00e1gina o Rutina de fin de reescritura (__folio_start_writeback en el registro a continuaci\u00f3n): \u00a1ERROR del kernel en mm/page-writeback.c:3070! Vaya: c\u00f3digo de operaci\u00f3n no v\u00e1lido: 0000 [#1] PREEMPT SMP KASAN PTI... RIP: 0010:__folio_start_writeback+0xbaa/0x10e0 C\u00f3digo: 25 ff 0f 00 00 0f 84 18 01 00 00 e8 40 ca c6 ff e9 17 f6 ff ff e8 36 ca c6 ff 4c 89 f7 48 c7 c6 80 c0 12 84 e8 e7 b3 0f 00 90 \u0026lt;0f\u0026gt; 0b e8 1f ca c6 ff 4c 89 f7 48 c7 c6 a0 c6 12 84 e8 d0 b3 0f 00 ... Seguimiento de llamadas: nilfs_segctor_do_construct+0x4654/0x69d0 [nilfs2] nilfs_segctor_construct+0x181/0x6b0 [nilfs2] nilfs_segctor_thread+0x548/0x11c0 [nilfs2] kthread+0x2f0/0x390 ret_from_fork+0x4b/0x 80 ret_from_fork_asm+0x1a/0x30 Esto se debe a que cuando el escritor de registros inicia una reescritura para bloques de resumen de segmentos o un bloque s\u00faper ra\u00edz que utiliza la cach\u00e9 de p\u00e1gina del dispositivo de respaldo, no espera la reescritura en curso de folios/p\u00e1ginas, lo que genera un estado de reescritura inconsistente. Solucione este problema esperando las reescrituras en curso al poner las publicaciones/p\u00e1ginas en el dispositivo de respaldo en estado de reescritura.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0ecfe3a92869a59668d27228dabbd7965e83567f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/271dcd977ccda8c7a26e360425ae7b4db7d2ecc0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/33900d7eae616647e179eee1c66ebe654ee39627\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/614d397be0cf43412b3f94a0f6460eddced8ce92\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/95f6f81e50d858a7c9aa7c795ec14a0ac3819118\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a4ca369ca221bb7e06c725792ac107f0e48e82e7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a75b8f493dfc48aa38c518430bd9e03b53bffebe\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/0ecfe3a92869a59668d27228dabbd7965e83567f\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/271dcd977ccda8c7a26e360425ae7b4db7d2ecc0\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/33900d7eae616647e179eee1c66ebe654ee39627\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/614d397be0cf43412b3f94a0f6460eddced8ce92\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/95f6f81e50d858a7c9aa7c795ec14a0ac3819118\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/a4ca369ca221bb7e06c725792ac107f0e48e82e7\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/a75b8f493dfc48aa38c518430bd9e03b53bffebe\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}" } }
Loading…
Loading…
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.