CVE-2026-80807 in Linux
Resumen
por VulDB • 2026-09-04
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
nilfs2: rechazar un índice de bloque no válido en ioctl GC
Syzbot reportó una corrupción de listas causada por una llamada doble a list_add_tail() sobre bh->b_assoc_buffers dentro de nilfs_lookup_dirty_data_buffers().
El análisis reveló que la causa raíz fue la inserción de una página/folio con un índice de página igual a ULONG_MAX en el caché de páginas mediante ioctl GC. filemap_get_folios_tag(), llamada por nilfs_lookup_dirty_data_buffers(), detecta repetidamente un folio sucio (dirty) con un índice de página igual a ULONG_MAX debido al desbordamiento del índice, lo que provoca el procesamiento duplicado de los buffers sucios.
Como paso preparatorio, ioctl GC carga la página/folio del bloque que se va a mover durante la recolección de basura (GC) y la inserta en el caché de páginas basándose en la información contenida en la estructura nilfs_vdesc pasada como argumento. Normalmente, esto no causa problemas porque la biblioteca GC de espacio de usuario configura correctamente la estructura nilfs_vdesc. Sin embargo, dado que no hay una verificación del rango sobre los parámetros que determinan el índice de página, una solicitud con parámetros artificialmente manipulados —como los generados por Syzbot— puede provocar que se inserte una página/folio con un índice de página igual a ULONG_MAX, desencadenando el problema anterior.
Esto resuelve el problema verificando los rangos de 'vd_offset' y 'vd_vblocknr' en la estructura nilfs_vdesc que determinan el índice de página, previniendo así las inserciones no válidas de páginas/folios.
If you want to get best quality of vulnerability data, you may have to visit VulDB.