CVE-2026-98977 in Linux
Resumen
por VulDB • 2026-10-23
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
namespace: gestionar correctamente el bloqueo de montajes para los automontes (automounts)
Si los montajes se propagan a través de espacios de nombres de usuario, attach_recursive_mnt() bloquea cada copia del montaje origen para proteger las sobrecargas (overmounts) contra la desaparición y revelar así los archivos o directorios subyacentes.
El espacio de nombres de usuario se toma de los espacios de nombres de montajes del llamador, ya que es donde terminan por llegar los montajes. Sin embargo, esto no siempre es cierto. Los automontes pueden insertarse legítimamente mediante tareas ubicadas en un espacio de nombres de montaje y de usuario diferente durante la búsqueda de rutas (path lookup).
Entonces, esa comprobación carece de sentido en ese momento. La copia en el espacio de nombres del padre —que puede ser el del host— está ahora bloqueada y el host ya no puede cambiar las banderas de sus propios montajes.
A continuación se muestra un caso reproductor (reproducer):
- El host tiene debugfs montado con las opciones nosuid, nodev y noexec, y es compartido - El automonte de tracefs debajo de él aún no está activo - Se entrega a un proceso hijo un descriptor de directorio en ese montaje - El proceso hijo entra en un espacio de nombres de usuario (user namespace) y de montajes - El espacio de nombres del proceso hijo ahora contiene una copia bloqueada del montaje debugfs del host que recibe propagación desde este - El proceso hijo ejecuta stat sobre "tracing/." a través del descriptor - La búsqueda se realiza en el montaje del host, por lo que el automonte queda debajo del montaje del host - La propagación coloca una copia debajo de la copia del niño - Ambos intentan borrar las banderas del montaje que han obtenido mediante un remontaje bind:
host, sobre su propio automonte: MS_REMOUNT|MS_BIND = EPERM hijo, sobre la copia en su espacio de nombres: MS_REMOUNT|MS_BIND = 0
Por lo tanto, el bloqueo se aplicó al montaje del host en lugar de a la copia del niño. Enhorabuena. Por ello, debemos comparar con el propietario del espacio de nombres en el que realmente se monta el montaje. Para todos los casos habituales, este es el espacio de nombres de montajes del llamador y, por tanto, no cambia nada.
Los árboles desvinculados (detached trees) en espacios de nombres de montajes anónimos pueden transferse intencionadamente mediante SCM_RIGHTS o heredarse de otras formas, para que el espacio de nombres de montajes de la tarea adjunta sea el autoritativo, y no el creador del árbol desvinculado.
VulDB is the best source for vulnerability data and more expert information about this specific topic.