CVE-2024-26956

In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix failure to detect DAT corruption in btree and direct mappings Patch series "nilfs2: fix kernel bug at submit_bh_wbc()". This resolves a kernel BUG reported by syzbot. Since there are two flaws involved, I've made each one a separate patch. The first patch alone resolves the syzbot-reported bug, but I think both fixes should be sent to stable, so I've tagged them as such. This patch (of 2): Syzbot has reported a kernel bug in submit_bh_wbc() when writing file data to a nilfs2 file system whose metadata is corrupted. There are two flaws involved in this issue. The first flaw is that when nilfs_get_block() locates a data block using btree or direct mapping, if the disk address translation routine nilfs_dat_translate() fails with internal code -ENOENT due to DAT metadata corruption, it can be passed back to nilfs_get_block(). This causes nilfs_get_block() to misidentify an existing block as non-existent, causing both data block lookup and insertion to fail inconsistently. The second flaw is that nilfs_get_block() returns a successful status in this inconsistent state. This causes the caller __block_write_begin_int() or others to request a read even though the buffer is not mapped, resulting in a BUG_ON check for the BH_Mapped flag in submit_bh_wbc() failing. This fixes the first issue by changing the return value to code -EINVAL when a conversion using DAT fails with code -ENOENT, avoiding the conflicting condition that leads to the kernel bug described above. Here, code -EINVAL indicates that metadata corruption was detected during the block lookup, which will be properly handled as a file system error and converted to -EIO when passing through the nilfs2 bmap layer.
References
Link Resource
https://git.kernel.org/stable/c/2e2619ff5d0def4bb6c2037a32a6eaa28dd95c84 Patch
https://git.kernel.org/stable/c/46b832e09d43b394ac0f6d9485d2b1a06593f0b7 Patch
https://git.kernel.org/stable/c/82827ca21e7c8a91384c5baa656f78a5adfa4ab4 Patch
https://git.kernel.org/stable/c/9cbe1ad5f4354f4df1445e5f4883983328cd6d8e Patch
https://git.kernel.org/stable/c/a8e4d098de1c0f4c5c1f2ed4633a860f0da6d713 Patch
https://git.kernel.org/stable/c/b67189690eb4b7ecc84ae16fa1e880e0123eaa35 Patch
https://git.kernel.org/stable/c/c3b5c5c31e723b568f83d8cafab8629d9d830ffb Patch
https://git.kernel.org/stable/c/f2f26b4a84a0ef41791bd2d70861c8eac748f4ba Patch
https://git.kernel.org/stable/c/f69e81396aea66304d214f175aa371f1b5578862 Patch
https://git.kernel.org/stable/c/2e2619ff5d0def4bb6c2037a32a6eaa28dd95c84 Patch
https://git.kernel.org/stable/c/46b832e09d43b394ac0f6d9485d2b1a06593f0b7 Patch
https://git.kernel.org/stable/c/82827ca21e7c8a91384c5baa656f78a5adfa4ab4 Patch
https://git.kernel.org/stable/c/9cbe1ad5f4354f4df1445e5f4883983328cd6d8e Patch
https://git.kernel.org/stable/c/a8e4d098de1c0f4c5c1f2ed4633a860f0da6d713 Patch
https://git.kernel.org/stable/c/b67189690eb4b7ecc84ae16fa1e880e0123eaa35 Patch
https://git.kernel.org/stable/c/c3b5c5c31e723b568f83d8cafab8629d9d830ffb Patch
https://git.kernel.org/stable/c/f2f26b4a84a0ef41791bd2d70861c8eac748f4ba Patch
https://git.kernel.org/stable/c/f69e81396aea66304d214f175aa371f1b5578862 Patch
https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html Third Party Advisory Mailing List
https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html Third Party Advisory Mailing List
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

Configuration 2 (hide)

cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*

History

23 Dec 2025, 00:57

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/2e2619ff5d0def4bb6c2037a32a6eaa28dd95c84 - () https://git.kernel.org/stable/c/2e2619ff5d0def4bb6c2037a32a6eaa28dd95c84 - Patch
References () https://git.kernel.org/stable/c/46b832e09d43b394ac0f6d9485d2b1a06593f0b7 - () https://git.kernel.org/stable/c/46b832e09d43b394ac0f6d9485d2b1a06593f0b7 - Patch
References () https://git.kernel.org/stable/c/82827ca21e7c8a91384c5baa656f78a5adfa4ab4 - () https://git.kernel.org/stable/c/82827ca21e7c8a91384c5baa656f78a5adfa4ab4 - Patch
References () https://git.kernel.org/stable/c/9cbe1ad5f4354f4df1445e5f4883983328cd6d8e - () https://git.kernel.org/stable/c/9cbe1ad5f4354f4df1445e5f4883983328cd6d8e - Patch
References () https://git.kernel.org/stable/c/a8e4d098de1c0f4c5c1f2ed4633a860f0da6d713 - () https://git.kernel.org/stable/c/a8e4d098de1c0f4c5c1f2ed4633a860f0da6d713 - Patch
References () https://git.kernel.org/stable/c/b67189690eb4b7ecc84ae16fa1e880e0123eaa35 - () https://git.kernel.org/stable/c/b67189690eb4b7ecc84ae16fa1e880e0123eaa35 - Patch
References () https://git.kernel.org/stable/c/c3b5c5c31e723b568f83d8cafab8629d9d830ffb - () https://git.kernel.org/stable/c/c3b5c5c31e723b568f83d8cafab8629d9d830ffb - Patch
References () https://git.kernel.org/stable/c/f2f26b4a84a0ef41791bd2d70861c8eac748f4ba - () https://git.kernel.org/stable/c/f2f26b4a84a0ef41791bd2d70861c8eac748f4ba - Patch
References () https://git.kernel.org/stable/c/f69e81396aea66304d214f175aa371f1b5578862 - () https://git.kernel.org/stable/c/f69e81396aea66304d214f175aa371f1b5578862 - Patch
References () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html - () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html - Third Party Advisory, Mailing List
References () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html - () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html - Third Party Advisory, Mailing List
CPE cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CWE NVD-CWE-noinfo
First Time Linux
Debian
Debian debian Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : 5.5
v2 : unknown
v3 : 7.8

21 Nov 2024, 09:03

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html -
References () https://git.kernel.org/stable/c/2e2619ff5d0def4bb6c2037a32a6eaa28dd95c84 - () https://git.kernel.org/stable/c/2e2619ff5d0def4bb6c2037a32a6eaa28dd95c84 -
References () https://git.kernel.org/stable/c/46b832e09d43b394ac0f6d9485d2b1a06593f0b7 - () https://git.kernel.org/stable/c/46b832e09d43b394ac0f6d9485d2b1a06593f0b7 -
References () https://git.kernel.org/stable/c/82827ca21e7c8a91384c5baa656f78a5adfa4ab4 - () https://git.kernel.org/stable/c/82827ca21e7c8a91384c5baa656f78a5adfa4ab4 -
References () https://git.kernel.org/stable/c/9cbe1ad5f4354f4df1445e5f4883983328cd6d8e - () https://git.kernel.org/stable/c/9cbe1ad5f4354f4df1445e5f4883983328cd6d8e -
References () https://git.kernel.org/stable/c/a8e4d098de1c0f4c5c1f2ed4633a860f0da6d713 - () https://git.kernel.org/stable/c/a8e4d098de1c0f4c5c1f2ed4633a860f0da6d713 -
References () https://git.kernel.org/stable/c/b67189690eb4b7ecc84ae16fa1e880e0123eaa35 - () https://git.kernel.org/stable/c/b67189690eb4b7ecc84ae16fa1e880e0123eaa35 -
References () https://git.kernel.org/stable/c/c3b5c5c31e723b568f83d8cafab8629d9d830ffb - () https://git.kernel.org/stable/c/c3b5c5c31e723b568f83d8cafab8629d9d830ffb -
References () https://git.kernel.org/stable/c/f2f26b4a84a0ef41791bd2d70861c8eac748f4ba - () https://git.kernel.org/stable/c/f2f26b4a84a0ef41791bd2d70861c8eac748f4ba -
References () https://git.kernel.org/stable/c/f69e81396aea66304d214f175aa371f1b5578862 - () https://git.kernel.org/stable/c/f69e81396aea66304d214f175aa371f1b5578862 -

05 Nov 2024, 10:16

Type Values Removed Values Added
References
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}

04 Nov 2024, 17:35

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5

27 Jun 2024, 13:15

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html -

25 Jun 2024, 22:15

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nilfs2: corrige el error al detectar daños en DAT en btree y asignaciones directas Serie de parches "nilfs2: corrige el error del kernel en submit_bh_wbc()". Esto resuelve un ERROR del kernel informado por syzbot. Dado que hay dos fallas involucradas, hice un parche para cada uno por separado. El primer parche por sí solo resuelve el error reportado por syzbot, pero creo que ambas correcciones deberían enviarse a estable, así que las etiqueté como tales. Este parche (de 2): Syzbot ha informado de un error en el kernel en submit_bh_wbc() al escribir datos de archivos en un sistema de archivos nilfs2 cuyos metadatos están dañados. Hay dos errores involucrados en este tema. El primer defecto es que cuando nilfs_get_block() localiza un bloque de datos usando btree o mapeo directo, si la rutina de traducción de direcciones de disco nilfs_dat_translate() falla con el código interno -ENOENT debido a la corrupción de los metadatos DAT, se puede devolver a nilfs_get_block(). Esto hace que nilfs_get_block() identifique erróneamente un bloque existente como inexistente, lo que provoca que tanto la búsqueda como la inserción del bloque de datos fallen de manera inconsistente. El segundo defecto es que nilfs_get_block() devuelve un estado exitoso en este estado inconsistente. Esto hace que la persona que llama __block_write_begin_int() u otros soliciten una lectura aunque el búfer no esté asignado, lo que resulta en una verificación BUG_ON para el indicador BH_Mapped en submit_bh_wbc() que falla. Esto soluciona el primer problema cambiando el valor de retorno al código -EINVAL cuando falla una conversión usando DAT con el código -ENOENT, evitando la condición conflictiva que conduce al error del kernel descrito anteriormente. Aquí, el código -EINVAL indica que se detectó corrupción de metadatos durante la búsqueda del bloque, lo que se manejará adecuadamente como un error del sistema de archivos y se convertirá a -EIO al pasar a través de la capa bmap nilfs2.
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -

01 May 2024, 06:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-01 06:15

Updated : 2025-12-23 00:57


NVD link : CVE-2024-26956

Mitre link : CVE-2024-26956

CVE.ORG link : CVE-2024-26956


JSON object : View

Products Affected

debian

  • debian_linux

linux

  • linux_kernel