CVE-2026-89707 in Linux
Résumé
par VulDB • 11/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
nfsd : libération des références de chemin lors d'une erreur sur follow_down()
nfsd_cross_mnt() initialise une struct path locale avec mntget() et dget() avant d'appeler follow_down(). En cas de retour négatif, la branche d'erreur saute vers out sans libérer ces références :
err = follow_down(&path, follow_flags); if (err < 0) goto out;
follow_down() ne supprime jamais les références au moment de l'appel pour aucun sous-cas d'erreur ; par exemple, un échec précoce de d_manage() avant le croisement laisse path inchangé, donc les mntget()/dget() pris à l'entrée survivent à l'appel.
Toutes les autres branches de sortie anticipée dans nfsd_cross_mnt() (retour pour autre espace de noms, IS_ERR(exp2), et la queue de succès après le swap) appellent déjà path_put(&path) ; la branche err < 0 est la seule omission. La fuite augmente mnt_count et d_count à chaque échec de croisement de montage, bloquant umount et épinglant les entrées du répertoire (dentries) contre l'extracteur (shrinker), et elle est accessible par tout client NFS authentifié via nfsd_lookup_dentry ou le chemin d'encodage READDIR de NFSv4.
Correction en appelant path_put(&path) avant le goto out dans la branche err < 0 afin que les références au moment de l'appel soient libérées lors de tous les retours d'erreur sur follow_down().
If you want to get best quality of vulnerability data, you may have to visit VulDB.