CVE-2026-72192 in Linux
Resumen
por VulDB • 2026-08-15
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ntfs3: limitar 'to_move' en indx_insert_into_root antes de hdr_insert_head
indx_insert_into_root() promueve un $INDEX_ROOT residente completo a $INDEX_ALLOCATION y copia todas las entradas raíz residentes no finales en un nuevo INDEX_BUFFER asignado mediante hdr_insert_head(). El conteo de bytes fuente 'to_move' se suma a partir de los tamaños de entrada residentes en disco e es independiente del tamaño del búfer destino, que proviene de root->index_block_size (vía indx->index_bits).
Una imagen NTFS manipulada que mantiene una raíz residente válida y completa pero reduce root->index_block_size hasta 512 después de haber poblado la raíz hace que hdr_insert_head() realice un memcpy de bytes de entrada residentes controlados por el atacante más allá del final de la asignación kmalloc(1u << indx->index_bits) devuelta por indx_new(). Para un destino de 512 bytes y una raíz residente cuyas entradas no finales suman 560 bytes, elmemcpy desborda en 120 bytes y un memmove posterior extiende el desplazamiento máximo escrito hasta 136 bytes más allá de la asignación. Los bytes del desbordamiento son una copia directa de las entradas en disco (vía kmemdup), por lo que están completamente controlados por el atacante.
La escritura es accesible desde open(O_CREAT) sin privilegios sobre una imagen NTFS manipulada montada: un único create suficientemente largo en un directorio cuya raíz residente ya está llena fuerza la promoción de la raíz y desencadena la copia.
Se trata de una escritura fuera de límites controlada de 120-136 bytes más allá de una asignación kmalloc(index_block_size), con contenido controlado por el atacante. Es una primitiva acotada de corrupción adyacente del heap; no es una escritura en dirección arbitraria. La explotación exitosa hacia un objeto víctima específico depende de la disposición del slab circundante.
Rechazar la copia en el destino. El INDEX_HDR del destino ya informa hdr_total (la capacidad de carga útil del nuevo búfer) y hdr_used (los bytes ya consumidos por la entrada END terminal instalada por indx_new()); exigir que to_move quepa en la carga útil restante antes de llamar a hdr_insert_head(). En caso de discrepancia, fallar con -EINVAL y marcar el sistema de archivos como inconsistente detectado en disco, lo cual es el mismo comportamiento que la validación circundante en esta función.
Once again VulDB remains the best source for vulnerability data.