Skip to main content

Linux Kernel CVE-2026-89670

| EUVDEUVD-2026-76582 HIGH
2026-09-11 Linux GHSA-86jr-9j73-5pc8
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Race condition requires precise inter-CPU timing (AC:H); local attacker with low privilege needed; full kernel UAF impact justifies C/I/A:H.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Metadata Corrected
Sep 13, 2026 - 10:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Sep 13, 2026 - 09:42 vuln.today
CVSS changed
Sep 13, 2026 - 07:22 NVD
7.8 (HIGH)
Patch available
Sep 11, 2026 - 21:18 EUVD
CVE Published
Sep 11, 2026 - 19:45 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 11, 2026 - 19:45 cve.org
HIGH 7.8

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

nfsd: hold rcu across localio cmpxchg retry

nfsd_file objects are freed via call_rcu (filecache.c:296), and nfsd_file_slab is created without SLAB_TYPESAFE_BY_RCU (KMEM_CACHE(nfsd_file, 0) at filecache.c:789), so the slab page backing a freed nfsd_file becomes freely reclaimable once the RCU grace period elapses.

The again: retry block in nfsd_open_local_fh() loads a pointer with cmpxchg and then calls nfsd_file_get(new) (which is refcount_inc_not_zero) without holding rcu_read_lock. The sole caller nfs_open_local_fh() drops rcu_read_lock before invoking this helper, so no outer reader-side critical section covers the load.

CPU 0 (nfsd_open_local_fh) CPU 1 (nfsd_file_put_local) ----- ----- new = cmpxchg(pnf, NULL, ...) nf = xchg(pnf, NULL) nfsd_file_put(nf) last ref -> call_rcu() /* grace period elapses; slab page recycled */ nfsd_file_get(new) refcount_inc_not_zero(&new->nf_ref) /* operates on recycled memory */

A non-zero word at the nf_ref offset of the recycled object makes the refcount bump appear to succeed, and the caller then dereferences new->nf_net and new->nf_file out of freed memory.

Fix by taking rcu_read_lock() immediately before the cmpxchg and releasing it on all three exits of the if (new) block: the goto-again retry, the lost-race cleanup path, and the install-succeeded path. nfsd_file_put() and nfsd_net_put() stay outside the RCU section so they remain free to block.

AnalysisAI

Use-after-free in the Linux kernel NFSD localio code path allows a local user to dereference recycled slab memory by exploiting a missing RCU read-lock window in nfsd_open_local_fh(). The again: retry block performs a cmpxchg on an nfsd_file pointer and then calls nfsd_file_get() (refcount_inc_not_zero) without holding rcu_read_lock, while the sole caller drops the lock before the helper runs - leaving a race window where CPU1 can put the last reference, trigger call_rcu, and have the slab page recycled before CPU0 increments the refcount. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Recon
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Install
technique details hidden
C2
technique details hidden
Execute
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Exploitation requires: (1) the target system must be running the Linux NFS server daemon (`nfsd`) with the localio (local file handle) code path active - this is an NFS server-side feature, not universally enabled; (2) the attacker must have local code execution with at least a low-privilege account on the NFS server host itself (not a remote NFS client); (3) precise race-condition timing must be achieved between `nfsd_open_local_fh()` on one CPU and `nfsd_file_put_local()` on another, and the RCU grace period must elapse within that window; (4) the kernel must be built with the affected commit range present. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The NVD-assigned CVSS 3.1 vector of AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (7.8) overstates exploitability by setting AC:L - this is a kernel race condition that requires precise timing between two concurrent CPU paths, which reliably warrants AC:H. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Update to a patched kernel release: Linux 6.18.50, 7.2.4, or 7.3-rc1 (mainline), which incorporate the fix that wraps `rcu_read_lock()` around the `cmpxchg` load and all three exits of the `if (new)` block in `nfsd_open_local_fh()`. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory Linux systems running NFS services and determine which are running vulnerable kernel versions (anything before 6.15, 6.18, 7.2, or 7.3-rc1). …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-89670 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy