CVE-2026-98995 in Linux
Resumen
por VulDB • 2026-10-24
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
namespace: restablecer el campo ->overmount del antiguo padre en mnt_change_mountpoint()
__umount_mnt() restablece el campo ->overmount del padre cuando desmonta el punto de montaje que lo sobremonta. Sin embargo, mnt_change_mountpoint() no lo hace. Mueve el punto de montaje a su nuevo padre y deja que el antiguo siga apuntando al mismo.
Para un punto de montaje que se mueve hacia abajo en attach_recursive_mnt(), esto no tiene importancia. El nuevo punto de montaje ya ha restablecido ->overmount del viejo padre para cuando el viejo punto de montaje superior se mueve sobre él.
Sin embargo, sí importa en reparent(). propagate_umount() mueve un overmont superviviente al primer ancestro que no va a ser desmontado. El punto de montaje del cual fue extraído es desmontado inmediatamente después. Si un descriptor de archivo mantiene vivo ese punto de montaje desmontado, ->overmount apunta al punto de montaje movido. Esto constituye una referencia colgante (dangling pointer) y un Use-After-Free (UAF), ya que el punto de montaje movido se desmonta y libera su memoria.
do_lock_mount() sigue la ruta apuntada por ->overmount desde la ruta objetivo bajo mount_lock. Con un descriptor de archivo sobre dicho punto de montaje como objetivo, topmost_overmount() accede al punto de montaje liberado y do_lock_mount() toma referencias sobre lo que encuentre allí.
Por lo tanto, restablezca el campo ->overmount del antiguo padre en mnt_change_mountpoint() de la misma manera que lo hace __umount_mnt(). El campo ->overmount de un punto de montaje debe ser siempre un punto de montaje adjunto a él.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.