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

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

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
27/12/2024
Última modificación:
03/11/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: f2fs: se corrige f2fs_bug_on al desinstalar el sistema de archivos, se llama f2fs_evict_inode. La creación de archivos grandes durante el punto de control se desactiva hasta que se queda sin espacio y luego se elimina, luego se vuelve a montar para habilitar el punto de control nuevamente y luego se desmonta el sistema de archivos, lo que activa f2fs_bug_on como se muestra a continuación: ------------[ cortar aquí ]------------ ¡ERROR del kernel en fs/f2fs/inode.c:896! CPU: 2 UID: 0 PID: 1286 Comm: umount No contaminado 6.11.0-rc7-dirty #360 Oops: código de operación no válido: 0000 [#1] PREEMPT SMP NOPTI RIP: 0010:f2fs_evict_inode+0x58c/0x610 Rastreo de llamadas: __die_body+0x15/0x60 die+0x33/0x50 do_trap+0x10a/0x120 f2fs_evict_inode+0x58c/0x610 do_error_trap+0x60/0x80 f2fs_evict_inode+0x58c/0x610 exc_invalid_op+0x53/0x60 f2fs_evict_inode+0x58c/0x610 La causa raíz es: crear archivos grandes durante el período del punto de control de deshabilitación da como resultado que no haya suficientes segmentos libres, por lo que al volver a escribir el inodo raíz, fallará en f2fs_enable_checkpoint. Al desmontar el sistema de archivos después de habilitar el punto de control, el inodo raíz está sucio en la función f2fs_evict_inode, lo que activa BUG_ON. Los pasos para reproducir son los siguientes: dd if=/dev/zero of=f2fs.img bs=1M count=55 mount f2fs.img f2fs_dir -o checkpoint=disable:10% dd if=/dev/zero of=big bs=1M count=50 sync rm big mount -o remount,checkpoint=enable f2fs_dir umount f2fs_dir Vamos a volver a ensuciar el inodo cuando no haya segmentos libres mientras se deshabilita el punto de control.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.8 (incluyendo) 5.4.287 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (incluyendo) 5.10.231 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.174 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.120 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.66 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.12.5 (excluyendo)