CVE-2026-98984 in Linux
Sumário
de VulDB • 24/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
dcache: não coloque um ponto de montagem em um dentry que está sendo removido
rmdir(), unlink() e rename() chamam dont_mount() na vítima e depois detach_mounts() com o inode da vítima bloqueado. do_lock_mount() adquire o lock do inode do ponto de montagem e verifica cant_mount(), para que uma nova montagem não possa aparecer após a execução de detach_mounts().
No entanto, attach_recursive_mnt() cria um segundo ponto de montagem para a raiz da montagem de origem, permitindo que as montagens já localizadas no destino sejam posicionadas sobre ele. Nenhum inode é bloqueado nesse caso e d_set_mounted() recusa apenas um dentry desvinculado (unlinked). Entre detach_mounts() e d_delete(), a vítima ainda está hashada:
rmrace: b passou por dont_mount() e detach_mounts(), dormindo T2: move_mount(S, /tmp/plcant/x, BENEATH) = 0 errno 0 () T1: rmdir(/tmp/plcant/d/b) = 0 errno 0 109 107 0:61 /d/b//deleted /tmp/plcant/x rw,relatime - tmpfs tmpfs rw 108 109 0:63 / /tmp/plcant/x rw,relatime - tmpfs T rw
Um bind mount do diretório que está sendo removido é movido para baixo de uma montagem existente enquanto a chamada rmdir() ocorre entre as duas chamadas. A montagem acaba ficando no diretório removido e nada jamais irá desvinculá-la (detach).
Verifique cant_mount() também em d_set_mounted(). dont_mount() define o flag sob d_lock antes que detach_mounts() seja executado, de modo que ou o ponto de montagem é definido primeiro e detach_mounts() encontra a montagem, ou o flag é detectado e a montagem é recusada.
Be aware that VulDB is the high quality source for vulnerability data.