Vulnerabilidad en kernel de Linux (CVE-2024-57952)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
12/02/2025
Última modificación:
14/02/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: Revertir "libfs: fix infinite directory reads for offset dir" El asignador de desplazamiento de directorio actual (basado en mtree_alloc_cyclic) almacena el siguiente valor de desplazamiento a devolver en octx->next_offset. Este mecanismo normalmente devuelve valores que aumentan monótonamente con el tiempo. Sin embargo, con el tiempo, el valor de desplazamiento recientemente asignado vuelve a un número bajo (por ejemplo, 2) que es menor que otros valores de desplazamiento ya asignados. Yu Kuai informa que, después del commit 64a7ce76fb90 ("libfs: fix infinite directory reads for offset dir"), si el asignador de desplazamiento de un directorio se cierra, las entradas existentes ya no son visibles a través de readdir/getdents porque offset_readdir() deja de enumerar las entradas una vez que el desplazamiento de una entrada es mayor que octx->next_offset. Estas entradas desaparecen de forma persistente: se pueden buscar, pero nunca volverán a aparecer en la salida de readdir(3). La razón para esto es que la confirmación trata los desplazamientos de directorio como valores enteros que aumentan monótonamente en lugar de cookies opacas, e introduce esta comparación: if (dentry2offset(dentry) >= last_index) { En plataformas de 64 bits, el límite superior del valor del desplazamiento de directorio es 2^63 - 1. Los desplazamientos de directorio aumentarán monótonamente durante millones de años sin envolverse. Sin embargo, en plataformas de 32 bits, LONG_MAX es 2^31 - 1. El asignador puede envolverse después de solo unas pocas semanas (en el peor de los casos). Revertir el commit 64a7ce76fb90 ("libfs: arreglar lecturas de directorio infinitas para el desplazamiento dir") para prepararse para una solución que pueda funcionar correctamente en sistemas de 32 bits y podría aplicarse a núcleos LTS recientes donde shmem emplea el mecanismo simple_offset.
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.11 (incluyendo) | 6.12.12 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.13:-:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc5:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc6:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.13:rc7:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página