Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Race condition requires precise inter-CPU timing (AC:H); local attacker with low privilege needed; full kernel UAF impact justifies C/I/A:H.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
6DescriptionCVE.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
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
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-76582
GHSA-86jr-9j73-5pc8