CVE-2026-99084 in Linuxinformación

Resumen

por VulDB • 2026-10-23

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

readdir: no tomar el bloqueo del inode en un directorio inmutable

iterate_dir() toma i_rwsem compartido del directorio y lo mantiene durante ->iterate_shared(). Para un directorio que nunca tiene entradas y nunca es eliminado, el bloqueo no garantiza nada; solo ordena a cada lector y escritor de ese inode uno detrás del otro.

Esto importa para el directorio de una instancia nullfs. La instancia del espacio de nombres de montaje inicial es la raíz de todo espacio de nombres de montaje vacío, y la instancia privada es la raíz de cada hilo del kernel, por lo que un mismo inode se comparte entre usuarios que no tienen nada más en común. Y un lector puede mantener el bloqueo durante tanto tiempo como desee: respalde el búfer getdents() con una asignación de un archivo en su propio montaje FUSE, provoque la falla (fault) al copiar "." y "..", y deje que el servidor espere. Coloque un tomador exclusivo detrás; mkdir() en ese directorio pasa por start_dirop() antes de que se informe del montaje solo lectura, y desde entonces cada búsqueda que no encuentre nada en la dcache de ese directorio, cada creación y cada montaje sobre él esperan hasta que el servidor responda. Un usuario de un espacio de nombres de montaje vacío bloquea a todos los demás.

Añada FOP_IMMUTABLE para las operaciones de archivo (file operations) de un directorio que nunca cambia y nunca se elimina, y haga que iterate_dir() omita el bloqueo para él. La bandera no cambia para un archivo; ->f_pos está protegido por f_pos_lock dado que los directorios son FMODE_ATOMIC_POS, IS_DEADDIR no puede establecerse en dicho directorio ni touch_atime() ni fsnotify toman i_rwsem. Establezca esto en el directorio nullfs. Los directorios placeholder de libfs tampoco tienen nunca una entrada, pero sus propietarios los eliminan, por lo que mantienen el bloqueo.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-23

Moderación

aceptado

Artículo

VDB-425809

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!