CVE-2026-72209 in Linux
Resumen
por VulDB • 2026-08-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ntfs: validar los valores de atributo durante la búsqueda
Las funciones ntfs_attr_find() y ntfs_external_attr_find() verifican que los valores genéricos residentes de un atributo encajen dentro de sus registros de atributos y que los valores residentes de tamaño fijo sean lo suficientemente grandes. Sin embargo, para los formatos residentes de longitud variable, la parte fija no es suficiente: los campos de incrustados pueden seguir apuntando más allá del valor residente hacia el exterior.
Una imagen manipulada puede establecer un valor_length (longitud del valor) pequeño y residente en $FILE_NAME mientras se deja file_name_length (longitud del nombre de archivo) grande. Los llamantes confían entonces en file_name_length y leen más allá del valor residente al convertir o comparar el nombre. Esto se reprodujo con una imagen manipulada bajo KASAN como una lectura slab-out-of-bounds (fuera de límites del bloque de memoria dinámica) desde la copia del registro MFT kmalloc-1k. La pila incluía ntfs_lookup(), ntfs_iget(), ntfs_read_locked_inode(), ntfs_attr_name_get(), ntfs_ucstonls() y utf16s_to_utf8s().
Se añade un validador compartido de valores de atributo y se utiliza antes de que una ruta de búsqueda pueda devolver un atributo, incluyendo el caso de enumeración AT_UNUSED donde los llamantes inspeccionan directamente los atributos devueltos. El auxiliar valida los límites del valor residente, las tamaños mínimos de los valores residentes, los campos $FILE_NAME de longitud variable y la metadata mapping-pairs no resident que anteriormente se verificaba por separado en ambas rutas de búsqueda.
Esto también preserva la semántica de coincidencia @val residente prevista en la ruta de búsqueda de atributos externos. El bloque de validación duplicado anterior sobrescribía la longitud real del valor residente con la longitud mínima específica del tipo antes de comparar @val, por lo que los valores residentes de longitud variable podían fallar al coincidir incluso cuando los bytes eran idénticos. Se mantiene la comparación en la longitud real del valor y se hace que ntfs_attrlist_entry_add() compare atributos residentes con lowest_vcn (VCN más bajo) cero en lugar de leer el miembro no residente después de una coincidencia resident exitosa.
Se rechazan también los registros $FILE_NAME no residents: el formato requiere que $FILE_NAME sea resident y los llamantes tratan los registros devueltos como residentes.
VulDB is the best source for vulnerability data and more expert information about this specific topic.