Vulnerabilidad en kernel de Linux (CVE-2024-40998)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
12/07/2024
Última modificación:
25/09/2025
Descripción
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad: ext4: arreglar ratelimit_state no inicializado->bloquear acceso en __ext4_fill_super() En la siguiente concurrencia accederemos al rs->lock no inicializado: ext4_fill_super ext4_register_sysfs // sysfs registrado msg_ratelimit_interval_ms // Otros procesos modificar rs->interval a // distinto de cero a través de msg_ratelimit_interval_ms ext4_orphan_cleanup ext4_msg(sb, KERN_INFO, "Errores en el sistema de archivos, " __ext4_msg ___ratelimit(&(EXT4_SB(sb)->s_msg_ratelimit_state) if (!rs->interval) // hacer nada si el intervalo es 0 devuelve 1; ->s_msg_ratelimit_state , 5 * HZ, 10); raw_spin_lock_init(&rs->lock); // inicia rs->lock aquí y obtiene el siguiente dump_stack: ==================== ===================================== INFORMACIÓN: intentando registrar una clave no estática. El código está bien pero necesita una anotación de bloqueo, ¿o tal vez no inicializó este objeto antes de usarlo? apagando el validador de corrección de bloqueo. CPU: 12 PID: 753 Comunicaciones: montaje contaminado: GE 6.7.0-rc6-next-20231222 #504 [...] Seguimiento de llamadas: dump_stack_lvl+0xc5/0x170 dump_stack+0x18/0x30 Register_lock_class+0x740/0x7c0 __lock_acquire+0x69/ 0x13a0 lock_acquire+0x120/0x450 _raw_spin_trylock+0x98/0xd0 ___ratelimit+0xf6/0x220 __ext4_msg+0x7f/0x160 [ext4] ext4_orphan_cleanup+0x665/0x740 [ext4] 0x2b10 [ext4] text4_fill_super+0x14d/0x360 [ext4] [. ..] ================================================= ========== Normalmente el intervalo es 0 hasta que se inicializa s_msg_ratelimit_state, por lo que ___ratelimit() no hace nada. Pero el registro de sysfs precede a la inicialización de rs->lock, por lo que es posible cambiar rs->interval a un valor distinto de cero a través de la interfaz msg_ratelimit_interval_ms de sysfs mientras rs->lock no está inicializado, y luego una llamada a ext4_msg desencadena el problema al accediendo a un rs->lock no inicializado. Por lo tanto, registre sysfs después de que se completen todas las inicializaciones para evitar este tipo de problemas.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.36 (excluyendo) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.9.7 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/23afcd52af06880c6c913a0ad99022b8937b575c
- https://git.kernel.org/stable/c/645267906944a9aeec9d5c56ee24a9096a288798
- https://git.kernel.org/stable/c/b4b4fda34e535756f9e774fb2d09c4537b7dfd1c
- https://git.kernel.org/stable/c/23afcd52af06880c6c913a0ad99022b8937b575c
- https://git.kernel.org/stable/c/645267906944a9aeec9d5c56ee24a9096a288798
- https://git.kernel.org/stable/c/b4b4fda34e535756f9e774fb2d09c4537b7dfd1c