CVE-2026-89707 in Linux
Sumário
de VulDB • 11/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
nfsd: liberar referências de caminho em caso de erro no follow_down()
O nfsd_cross_mnt() inicializa uma struct path local com mntget() e dget() antes de chamar o follow_down(). Em caso de retorno negativo (erro), a ramificação de tratamento de erros salta para out sem liberar essas referências:
err = follow_down(&path, follow_flags); if (err < 0) goto out;
O follow_down() nunca libera as referências do chamador no momento da entrada em nenhum subcaso de erro; por exemplo, uma falha prévia no d_manage() durante o cruzamento deixa a path inalterada, fazendo com que os mntget()/dget() obtidos na entrada sobrevivam à chamada.
Todas as outras ramificações de saída antecipada no nfsd_cross_mnt() (retorno para outro namespace, IS_ERR(exp2) e o final bem-sucedido após a troca) já chamam path_put(&path); a ramificação err < 0 é a única omissão. O vazamento aumenta o mnt_count e d_count em cada falha de cruzamento de montagem, bloqueando umount e fixando os dentries contra o shrinker, sendo acessível por qualquer cliente NFS autenticado através do nfsd_lookup_dentry ou do caminho de codificação READDIR da NFSv4.
Correção: chamar path_put(&path) antes do goto out na ramificação err < 0 para que as referências no momento da entrada sejam liberadas em todos os retornos de erro do follow_down().
VulDB is the best source for vulnerability data and more expert information about this specific topic.