CVE-2026-89492 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ocfs2: validar los recuentos de entradas del índice de directorio al leer metadatos
Las funciones ocfs2_validate_dx_leaf() y ocfs2_validate_dx_root() verifican la ECC (código corrector de errores) y la firma de un bloque de directorio indexado antes de que este llegue a los llamadores de nivel superior, pero ninguno de estos validadores acota los recuentos de la lista de entradas dx (ocfs2_dx_entry_list) frente a la capacidad del bloque que las contiene.
Posteriormente, ocfs2_dx_dir_search() realiza un recorrido mediante:
for (i = 0; i < le16_to_cpu(entry_list->de_num_used); i++) dx_entry = &entry_list->de_entries[i];
sobre de_num_used entradas sin realizar ninguna comprobación de límites. entry_list es o bien dx_leaf->dl_list (procedente de ocfs2_read_dx_leaf) o, para una raíz en línea (inline root), dx_root->dr_entries. Una imagen en disco manipulada puede establecer de_num_used (y de_count, que es el límite __counted_by_le() de de_entries) en 0xffff y hacer que el recorrido lea mucho más allá del final del bloque de metadatos de 4 KB, lo que provoca una lectura fuera de límites en slab accesible desde cualquier ruta de búsqueda, stat() o open() sobre un directorio indexado una vez montada la imagen.
El commit 775c17386a6f ("ocfs2: validate dx_root extent list fields during block read") ya acotaba dr_list para el caso no inline de dx_root, pero dejó sin verificar la ruta de dr_entries en línea y dl_list de dx_leaf. Se añade la misma validación durante la lectura para ambas listas de entradas: de_count debe ser igual a la capacidad del bloque (ocfs2_dx_entries_per_leaf()/per_root()) y de_num_used no debe exceder de_count, rechazando los metadatos corruptos con -EFSCORRUPTED antes de que ocfs2_dx_dir_search() pueda recorrer un array de entradas fuera de rango.
de_count se escribe siempre como exactamente la capacidad del bloque cuando se formatea una hoja (leaf) o una raíz en línea, por lo que la comprobación de igualdad no rechaza ninguna imagen válida.
Detectado mediante herramientas automatizadas de investigación de seguridad de 0sec (https://0sec.ai).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.