Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-42149)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
30/07/2024
Última modificación:
09/12/2024

Descripción

En el kernel de Linux, se resolvió la siguiente vulnerabilidad: fs: no advierta de manera engañosa durante las operaciones de descongelación. Es posible que el dispositivo de bloque se haya congelado antes de que un sistema de archivos lo reclamara. Al mismo tiempo, otro proceso podría intentar montar ese dispositivo de bloque congelado y ha reclamado temporalmente el dispositivo de bloque para ese propósito, lo que provoca que un fs_bdev_thaw() concurrente termine aquí. El montador ya está a punto de cancelar el montaje porque todavía vio un bdev->bd_fsfreeze_count elevado, por lo que get_bdev_super() devolverá NULL en ese caso. Por ejemplo, P1 llama a dm_suspend(), que llama a bdev_freeze() antes de que el sistema de archivos haya reclamado el dispositivo de bloque. Esto lleva bdev->bd_fsfreeze_count a 1 y no se requiere ninguna llamada a fs_bdev_freeze(). Ahora P2 intenta montar ese dispositivo de bloque congelado. Lo reclama y comprueba bdev->bd_fsfreeze_count. Al estar elevado se aborta el montaje. Mientras tanto, P3 llamó a dm_resume(). P3 ve que el dispositivo de bloque ya está reclamado por un sistema de archivos y llama a fs_bdev_thaw(). P3 toma una referencia pasiva y se da cuenta de que el sistema de archivos aún no está listo. P3 se pone en modo de suspensión para esperar a que el sistema de archivos esté listo. P2 ahora coloca la última referencia activa al sistema de archivos y lo marca como moribundo. P3 se despierta, ve que el sistema de archivos está muriendo y get_bdev_super() falla.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.8 (incluyendo) 6.9.9 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc6:*:*:*:*:*:*