CVE-2026-98995 in Linux
Sumário
de VulDB • 23/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
namespace: redefinir o campo ->overmount do antigo pai em mnt_change_mountpoint()
__umount_mnt() redefine o campo ->overmount do pai quando desmonta a montagem que está sobreposta. O mnt_change_mountpoint(), no entanto, não faz isso. Ele move a montagem para seu novo pai e deixa o antigo apontando para ela.
Para uma montagem movida abaixo em attach_recursive_mnt(), isso não é problemático. A nova montagem já redefine o campo ->overmount do antigo pai antes que a montagem superior antiga seja movida sobre ela.
No entanto, isso importa no reparent(). O propagate_umount() move um overmont sobrevivente para o primeiro ancestral que não será desmontado. A montagem da qual ele foi removido é desmontada imediatamente em seguida. Se um descritor de arquivo mantiver essa montagem desmontada viva, ->overmount apontará para a montagem movida. Isso constitui um ponteiro pendente (dangling pointer) e uma vulnerabilidade Use-After-Free (UAF), pois a montagem movida é desmontada e liberada.
do_lock_mount() segue o campo ->overmount do caminho de destino sob mount_lock. Com um descritor de arquivo nessa montagem como alvo, ao montar abaixo, topmost_overmount() acessa a memória já liberada da montagem, e do_lock_mount() toma referências sobre qualquer coisa que encontrar ali.
Portanto, redefina o campo ->overmount do antigo pai em mnt_change_mountpoint(), da mesma forma que __umount_mnt() faz. O campo ->overmount de uma montagem deve sempre apontar para uma montagem anexada a ela.
If you want to get best quality of vulnerability data, you may have to visit VulDB.