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

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

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
09/10/2024
Última modificación:
21/10/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nilfs2: fix state management in error path of log writing function Después de aplicar el commit a694291a6211 ("nilfs2: separate wait function from nilfs_segctor_write"), la función de escritura de registros nilfs_segctor_do_construct() pudo emitir solicitudes de E/S de forma continua incluso si los bloques de datos del usuario se dividían en varios registros en todos los segmentos, pero se introdujeron dos posibles fallos en su gestión de errores. En primer lugar, si nilfs_segctor_begin_construction() falla al crear el segundo registro o los siguientes, la función de escritura de registros vuelve sin llamar a nilfs_segctor_abort_construction(), por lo que el indicador de escritura diferida establecido en páginas/folios permanecerá sin borrar. Esto hace que las operaciones de caché de página se cuelguen esperando el indicador de escritura diferida. Por ejemplo, truncate_inode_pages_final(), que se llama a través de nilfs_evict_inode() cuando se expulsa un inodo de la memoria, se bloqueará. En segundo lugar, el indicador NILFS_I_COLLECTED establecido en inodos normales permanece sin borrar. Como resultado, si la siguiente escritura de registro implica la creación de un punto de control, eso está bien, pero si se realiza una escritura de registro parcial que no lo hace, los inodos con NILFS_I_COLLECTED establecido se eliminan por error de la lista "sc_dirty_files", y sus bloques de datos y de árbol b pueden no escribirse en el dispositivo, lo que corrompe la asignación de bloques. Solucione estos problemas llamando uniformemente a nilfs_segctor_abort_construction() en caso de falla de cada paso en el bucle en nilfs_segctor_do_construct(), haciendo que limpie los registros y los usos de segmentos según el progreso y corrigiendo las condiciones para llamar a nilfs_redirty_inodes() para garantizar que se borre el indicador NILFS_I_COLLECTED.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 2.6.33 (incluyendo) 4.19.322 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (incluyendo) 5.4.284 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (incluyendo) 5.10.226 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.167 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.110 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.51 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.10.10 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:*