PT-2026-90423 · Linux · Linux

CVE-2026-89707

·

Published

2026-09-11

·

Updated

2026-09-11

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
nfsd: release path refs on follow down() error
nfsd cross mnt() initializes a local struct path with mntget() and dget() before calling follow down(). On a negative return the error arm jumps to out without releasing those references:
err = follow down(&path, follow flags); if (err < 0) goto out;
follow down() never drops the caller's entry-time refs on any error sub-case; for example a pre-cross d manage() failure leaves path untouched, so the mntget()/dget() taken on entry survive the call.
Every other early-exit arm in nfsd cross mnt() (other-namespace return, IS ERR(exp2), and the success tail after the swap) already calls path put(&path); the err < 0 arm is the lone omission. The leak inflates mnt count and d count on each failed cross-mount, blocking umount and pinning dentries against the shrinker, and is reachable by any authenticated NFS client through nfsd lookup dentry or the NFSv4 READDIR encode path.
Fix by calling path put(&path) before the goto out in the err < 0 arm so the entry-time refs are released on all follow down() error returns.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89707

Affected Products

Linux