CVE-2024-35807

In the Linux kernel, the following vulnerability has been resolved: ext4: fix corruption during on-line resize We observed a corruption during on-line resize of a file system that is larger than 16 TiB with 4k block size. With having more then 2^32 blocks resize_inode is turned off by default by mke2fs. The issue can be reproduced on a smaller file system for convenience by explicitly turning off resize_inode. An on-line resize across an 8 GiB boundary (the size of a meta block group in this setup) then leads to a corruption: dev=/dev/<some_dev> # should be >= 16 GiB mkdir -p /corruption /sbin/mke2fs -t ext4 -b 4096 -O ^resize_inode $dev $((2 * 2**21 - 2**15)) mount -t ext4 $dev /corruption dd if=/dev/zero bs=4096 of=/corruption/test count=$((2*2**21 - 4*2**15)) sha1sum /corruption/test # 79d2658b39dcfd77274e435b0934028adafaab11 /corruption/test /sbin/resize2fs $dev $((2*2**21)) # drop page cache to force reload the block from disk echo 1 > /proc/sys/vm/drop_caches sha1sum /corruption/test # 3c2abc63cbf1a94c9e6977e0fbd72cd832c4d5c3 /corruption/test 2^21 = 2^15*2^6 equals 8 GiB whereof 2^15 is the number of blocks per block group and 2^6 are the number of block groups that make a meta block group. The last checksum might be different depending on how the file is laid out across the physical blocks. The actual corruption occurs at physical block 63*2^15 = 2064384 which would be the location of the backup of the meta block group's block descriptor. During the on-line resize the file system will be converted to meta_bg starting at s_first_meta_bg which is 2 in the example - meaning all block groups after 16 GiB. However, in ext4_flex_group_add we might add block groups that are not part of the first meta block group yet. In the reproducer we achieved this by substracting the size of a whole block group from the point where the meta block group would start. This must be considered when updating the backup block group descriptors to follow the non-meta_bg layout. The fix is to add a test whether the group to add is already part of the meta block group or not.
References
Link Resource
https://git.kernel.org/stable/c/239c669edb2bffa1aa2612519b1d438ab35d6be6 Patch
https://git.kernel.org/stable/c/37b6a3ba793bbbae057f5b991970ebcc52cb3db5 Patch
https://git.kernel.org/stable/c/722d2c01b8b108f8283d1b7222209d5b2a5aa7bd Patch
https://git.kernel.org/stable/c/75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 Patch
https://git.kernel.org/stable/c/a6b3bfe176e8a5b05ec4447404e412c2a3fc92cc Patch
https://git.kernel.org/stable/c/b461910af8ba3bed80f48c2bf852686d05c6fc5c Patch
https://git.kernel.org/stable/c/e8e8b197317228b5089ed9e7802dadf3ccaa027a Patch
https://git.kernel.org/stable/c/ee4e9c1976147a850f6085a13fca95bcaa00d84c Patch
https://git.kernel.org/stable/c/fb1088d51bbaa0faec5a55d4f5818a9ab79e24df Patch
https://git.kernel.org/stable/c/239c669edb2bffa1aa2612519b1d438ab35d6be6 Patch
https://git.kernel.org/stable/c/37b6a3ba793bbbae057f5b991970ebcc52cb3db5 Patch
https://git.kernel.org/stable/c/722d2c01b8b108f8283d1b7222209d5b2a5aa7bd Patch
https://git.kernel.org/stable/c/75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 Patch
https://git.kernel.org/stable/c/a6b3bfe176e8a5b05ec4447404e412c2a3fc92cc Patch
https://git.kernel.org/stable/c/b461910af8ba3bed80f48c2bf852686d05c6fc5c Patch
https://git.kernel.org/stable/c/e8e8b197317228b5089ed9e7802dadf3ccaa027a Patch
https://git.kernel.org/stable/c/ee4e9c1976147a850f6085a13fca95bcaa00d84c Patch
https://git.kernel.org/stable/c/fb1088d51bbaa0faec5a55d4f5818a9ab79e24df Patch
https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html Third Party Advisory
https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html Third Party Advisory
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

17 Dec 2025, 19:36

Type Values Removed Values Added
CWE NVD-CWE-noinfo
CPE cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
First Time Linux
Debian
Debian debian Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
References () https://git.kernel.org/stable/c/239c669edb2bffa1aa2612519b1d438ab35d6be6 - () https://git.kernel.org/stable/c/239c669edb2bffa1aa2612519b1d438ab35d6be6 - Patch
References () https://git.kernel.org/stable/c/37b6a3ba793bbbae057f5b991970ebcc52cb3db5 - () https://git.kernel.org/stable/c/37b6a3ba793bbbae057f5b991970ebcc52cb3db5 - Patch
References () https://git.kernel.org/stable/c/722d2c01b8b108f8283d1b7222209d5b2a5aa7bd - () https://git.kernel.org/stable/c/722d2c01b8b108f8283d1b7222209d5b2a5aa7bd - Patch
References () https://git.kernel.org/stable/c/75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 - () https://git.kernel.org/stable/c/75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 - Patch
References () https://git.kernel.org/stable/c/a6b3bfe176e8a5b05ec4447404e412c2a3fc92cc - () https://git.kernel.org/stable/c/a6b3bfe176e8a5b05ec4447404e412c2a3fc92cc - Patch
References () https://git.kernel.org/stable/c/b461910af8ba3bed80f48c2bf852686d05c6fc5c - () https://git.kernel.org/stable/c/b461910af8ba3bed80f48c2bf852686d05c6fc5c - Patch
References () https://git.kernel.org/stable/c/e8e8b197317228b5089ed9e7802dadf3ccaa027a - () https://git.kernel.org/stable/c/e8e8b197317228b5089ed9e7802dadf3ccaa027a - Patch
References () https://git.kernel.org/stable/c/ee4e9c1976147a850f6085a13fca95bcaa00d84c - () https://git.kernel.org/stable/c/ee4e9c1976147a850f6085a13fca95bcaa00d84c - Patch
References () https://git.kernel.org/stable/c/fb1088d51bbaa0faec5a55d4f5818a9ab79e24df - () https://git.kernel.org/stable/c/fb1088d51bbaa0faec5a55d4f5818a9ab79e24df - 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
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

21 Nov 2024, 09:20

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/239c669edb2bffa1aa2612519b1d438ab35d6be6 - () https://git.kernel.org/stable/c/239c669edb2bffa1aa2612519b1d438ab35d6be6 -
References () https://git.kernel.org/stable/c/37b6a3ba793bbbae057f5b991970ebcc52cb3db5 - () https://git.kernel.org/stable/c/37b6a3ba793bbbae057f5b991970ebcc52cb3db5 -
References () https://git.kernel.org/stable/c/722d2c01b8b108f8283d1b7222209d5b2a5aa7bd - () https://git.kernel.org/stable/c/722d2c01b8b108f8283d1b7222209d5b2a5aa7bd -
References () https://git.kernel.org/stable/c/75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 - () https://git.kernel.org/stable/c/75cc31c2e7193b69f5d25650bda5bb42ed92f8a1 -
References () https://git.kernel.org/stable/c/a6b3bfe176e8a5b05ec4447404e412c2a3fc92cc - () https://git.kernel.org/stable/c/a6b3bfe176e8a5b05ec4447404e412c2a3fc92cc -
References () https://git.kernel.org/stable/c/b461910af8ba3bed80f48c2bf852686d05c6fc5c - () https://git.kernel.org/stable/c/b461910af8ba3bed80f48c2bf852686d05c6fc5c -
References () https://git.kernel.org/stable/c/e8e8b197317228b5089ed9e7802dadf3ccaa027a - () https://git.kernel.org/stable/c/e8e8b197317228b5089ed9e7802dadf3ccaa027a -
References () https://git.kernel.org/stable/c/ee4e9c1976147a850f6085a13fca95bcaa00d84c - () https://git.kernel.org/stable/c/ee4e9c1976147a850f6085a13fca95bcaa00d84c -
References () https://git.kernel.org/stable/c/fb1088d51bbaa0faec5a55d4f5818a9ab79e24df - () https://git.kernel.org/stable/c/fb1088d51bbaa0faec5a55d4f5818a9ab79e24df -

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'}

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
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: ext4: corregida la corrupción durante el cambio de tamaño en línea Observamos una corrupción durante el cambio de tamaño en línea de un sistema de archivos de más de 16 TiB con un tamaño de bloque de 4k. Al tener más de 2 ^ 32 bloques, mke2fs desactiva resize_inode de forma predeterminada. El problema se puede reproducir en un sistema de archivos más pequeño por conveniencia desactivando explícitamente resize_inode. Un cambio de tamaño en línea a través de un límite de 8 GiB (el tamaño de un grupo de metabloques en esta configuración) conduce a una corrupción: dev=/dev/ # debería ser &gt;= 16 GiB mkdir -p /corruption /sbin/mke2fs -t ext4 -b 4096 -O ^resize_inode $dev $((2 * 2**21 - 2**15)) mount -t ext4 $dev /corruption dd if=/dev/zero bs=4096 of=/corruption/test count=$((2*2**21 - 4*2**15)) sha1sum /corruption/test # 79d2658b39dcfd77274e435b0934028adafaab11 /corruption/test /sbin/resize2fs $dev $((2*2**21)) # soltar caché de página para forzar la recarga del bloque desde el disco echo 1 &gt; /proc/sys/vm/drop_caches sha1sum /corruption/test # 3c2abc63cbf1a94c9e6977e0fbd72cd832c4d5c3 /corruption/test 2^21 = 2^15*2^6 equivale a 8 GiB de los cuales 2^15 es el número de bloques por grupo de bloques y 2^6 es el número de grupos de bloques que forman un metagrupo de bloques. La última suma de comprobación puede ser diferente dependiendo de cómo esté distribuido el archivo en los bloques físicos. La corrupción real ocurre en el bloque físico 63*2^15 = 2064384, que sería la ubicación de la copia de seguridad del descriptor de bloque del grupo de metabloques. Durante el cambio de tamaño en línea, el sistema de archivos se convertirá a meta_bg comenzando en s_first_meta_bg, que en el ejemplo es 2, es decir, todos los grupos de bloques después de 16 GiB. Sin embargo, en ext4_flex_group_add podríamos agregar grupos de bloques que aún no forman parte del primer metagrupo de bloques. En el reproductor logramos esto restando el tamaño de un grupo de bloques completo desde el punto donde comenzaría el grupo de metabloques. Esto debe tenerse en cuenta al actualizar los descriptores del grupo de bloques de respaldo para que sigan el diseño que no es meta_bg. La solución es agregar una prueba de si el grupo a agregar ya forma parte del grupo de metabloques o no.

17 May 2024, 14:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-17 14:15

Updated : 2025-12-17 19:36


NVD link : CVE-2024-35807

Mitre link : CVE-2024-35807

CVE.ORG link : CVE-2024-35807


JSON object : View

Products Affected

debian

  • debian_linux

linux

  • linux_kernel