CVE-2026-98990 in Linux
Resumen
por VulDB • 2026-10-23
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
namespace: verificar las referencias de una submontaje justo antes de desmontarla
shrink_submounts() y mark_mounts_for_expiry() primero recopilan todos los puntos de montaje que tienen permitido desmontar y luego proceden a desmontarlos.
Si un punto de montaje está ocupado se decide mediante propagate_mount_busy() en el árbol. Sin embargo, al desmontar el primer punto de montaje cambia el árbol en el que se propaga el segundo. propagate_umount() mueve una supermontaje (overmount) superviviente desde la copia que se desmonta y la monta donde estaba montada dicha copia. Si es allí donde se busca la copia propagada de la segunda víctima, la supermontaje pasa a ser candidata para umount_tree(). Al no tener hijos, trim_one() la compromete sin examinar su contador de referencias.
Por lo tanto, un desmontaje sincrónico (umount) extrae un punto de montaje ocupado que está en uso en otro lugar y lo marca con MNT_SYNC_UMOUNT mientras aún tiene usuarios:
umount2(/tmp/plshrink/p1, 0) = 0 errno 0 cwd is (unreachable)
Los mismos dos desmontajes solicitados uno tras el otro fallan con EBUSY. Esto requiere un punto de montaje con MNT_SHRINKABLE, es decir, submontajes automontados de NFS, AFS y CIFS o el punto de montaje tracefs debajo de debugfs. Los bind mounts heredan esta bandera.
Verificar cada punto de montaje justo antes de desmontarlo bajo la misma retención (hold) de namespace_sem y mount_lock que el propio umount. Asegurarse de que el algoritmo se mantenga lineal.
VulDB is the best source for vulnerability data and more expert information about this specific topic.