CVE-2026-89707

nfsd: release path refs on follow_down() error

State
Published
Severity
7.5 High
Published
Sep 11, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before bdf5a0f88d21239d8f9f7519b87359ba95fd045cAffected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before 18847cbf5900f5c6c55bef5a6f7a34a1918d1181Affected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before e301c5cdb0dc2c4aeffc0c055ea15615d9c51fdcAffected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before 085cfde7c2186acaad103f02d2c25435ad5224e9Affected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before 194316df81263519156ebe714c4a286bee00e5beAffected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before 467d56fd3ff57447a790c6dc3ede2d02a947d224Affected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before 2bc4343308d85ee4e0dd3877b384306c96f114c2Affected
  • cc53ce53c86924bfe98a12ea20b7465038a08792 to before 6cba08dc1922140d260cfeb30bbda4ee1bf869d8Affected
LinuxLinux
  • 2.6.38Affected
  • before 2.6.38Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.