Skip to main content
VulnerabilityPublished Updated

CVE-2026-89707: Linux kernel · nfsd: release path refs on follow_down() error

Affects Linux kernelSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 7.5 High · fixed in e301c5cdb0dc2c4aeffc0c055ea15615d9c51fdc : patch Linux kernel soon.

Data as of 30 Oct 2026, 12:49 UTC

CVSS 3.1 base score
7.5High
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (Linux)CVSS 3.17.5
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers can reliably automate steps 1–4 of the kill chain
Technical impact
Limited control over the software or limited information exposure

CISA SSVC assessment, 2026-10-16.

Patch
Available – fixed in e301c5cdb0dc2c4aeffc0c055ea15615d9c51fdc, bdf5a0f88d21239d8f9f7519b87359ba95fd045c, 194316df81263519156ebe714c4a286bee00e5be +5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 11 Sep 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ cc53ce53c86924bfe98a12ea20b7465038a08792, < e301c5cdb0dc2c4aeffc0c055ea15615d9c51fdc
Fixed in
  • e301c5cdb0dc2c4aeffc0c055ea15615d9c51fdc
LinuxLinuxAffected
  • ≥ cc53ce53c86924bfe98a12ea20b7465038a08792, < bdf5a0f88d21239d8f9f7519b87359ba95fd045c
Fixed in
  • bdf5a0f88d21239d8f9f7519b87359ba95fd045c
LinuxLinuxAffected
  • ≥ cc53ce53c86924bfe98a12ea20b7465038a08792, < 194316df81263519156ebe714c4a286bee00e5be
Fixed in
  • 194316df81263519156ebe714c4a286bee00e5be
LinuxLinuxAffected
  • ≥ cc53ce53c86924bfe98a12ea20b7465038a08792, < 18847cbf5900f5c6c55bef5a6f7a34a1918d1181
Fixed in
  • 18847cbf5900f5c6c55bef5a6f7a34a1918d1181
LinuxLinuxAffected
  • ≥ cc53ce53c86924bfe98a12ea20b7465038a08792, < 467d56fd3ff57447a790c6dc3ede2d02a947d224
Fixed in
  • 467d56fd3ff57447a790c6dc3ede2d02a947d224
LinuxLinuxAffected
  • ≥ cc53ce53c86924bfe98a12ea20b7465038a08792, < 085cfde7c2186acaad103f02d2c25435ad5224e9
Fixed in
  • 085cfde7c2186acaad103f02d2c25435ad5224e9

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.

References

Community reviews

Loading reviews…