CVE-2024-42104

In the Linux kernel, the following vulnerability has been resolved: nilfs2: add missing check for inode numbers on directory entries Syzbot reported that mounting and unmounting a specific pattern of corrupted nilfs2 filesystem images causes a use-after-free of metadata file inodes, which triggers a kernel bug in lru_add_fn(). As Jan Kara pointed out, this is because the link count of a metadata file gets corrupted to 0, and nilfs_evict_inode(), which is called from iput(), tries to delete that inode (ifile inode in this case). The inconsistency occurs because directories containing the inode numbers of these metadata files that should not be visible in the namespace are read without checking. Fix this issue by treating the inode numbers of these internal files as errors in the sanity check helper when reading directory folios/pages. Also thanks to Hillf Danton and Matthew Wilcox for their initial mm-layer analysis.
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:*:*:*:*:*:*:*:*

History

21 Nov 2024, 09:33

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/07c176e7acc5579c133bb923ab21316d192d0a95 - Patch () https://git.kernel.org/stable/c/07c176e7acc5579c133bb923ab21316d192d0a95 - Patch
References () https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180 - Patch () https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180 - Patch
References () https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf - Patch () https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf - Patch
References () https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7 - Patch () https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7 - Patch
References () https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d - Patch () https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d - Patch
References () https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131 - Patch () https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131 - Patch
References () https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458 - Patch () https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458 - Patch
References () https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479 - Patch () https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479 - Patch

27 Aug 2024, 14:28

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/07c176e7acc5579c133bb923ab21316d192d0a95 - () https://git.kernel.org/stable/c/07c176e7acc5579c133bb923ab21316d192d0a95 - Patch
References () https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180 - () https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180 - Patch
References () https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf - () https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf - Patch
References () https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7 - () https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7 - Patch
References () https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d - () https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d - Patch
References () https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131 - () https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131 - Patch
References () https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458 - () https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458 - Patch
References () https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479 - () https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479 - Patch
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CWE CWE-416

30 Jul 2024, 13:32

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: nilfs2: agrega una verificación faltante para los números de inodo en las entradas del directorio Syzbot informó que montar y desmontar un patrón específico de imágenes corruptas del sistema de archivos nilfs2 provoca un use after free de los inodos del archivo de metadatos, lo que desencadena un error del kernel en lru_add_fn(). Como señaló Jan Kara, esto se debe a que el recuento de enlaces de un archivo de metadatos se corrompe a 0, y nilfs_evict_inode(), que se llama desde iput(), intenta eliminar ese inodo (inodo ifile en este caso). La inconsistencia se produce porque los directorios que contienen los números de inodo de estos archivos de metadatos que no deberían ser visibles en el espacio de nombres se leen sin verificar. Solucione este problema tratando los números de inodo de estos archivos internos como errores en el asistente de verificación de cordura al leer folios/páginas del directorio. También gracias a Hillf Danton y Matthew Wilcox por su análisis inicial de capas mm.

30 Jul 2024, 08:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-30 08:15

Updated : 2024-11-21 09:33


NVD link : CVE-2024-42104

Mitre link : CVE-2024-42104

CVE.ORG link : CVE-2024-42104


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free