Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Triggering the race requires local admin to initiate nfsd shutdown (AV:L/PR:H/AC:H); impact is resource leak only, no confidentiality or integrity loss.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
6DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
nfsd: close shrinker/GC/fsnotify vs per-net shutdown race in filecache
The shrinker, GC worker, and fsnotify/lease callbacks can unhash an nfsd_file from the rhashtable and then call nfsd_file_dispose_list_delayed() to move it to the per-net dispose list. If nfsd_file_cache_shutdown_net() runs concurrently, its rhashtable walk misses the already-unhashed file, and its drain of the per-net dispose list can run before the file has been queued. The file then sits on the per-net list with no thread to drain it, leaking both the file and its associated state.
The GC worker and shrinker already hold nfsd_gc_lock while walking the LRU, but in the original code they release it before calling nfsd_file_dispose_list_delayed(). The fsnotify/lease path (nfsd_file_close_inode) has no synchronization at all.
Fix this by:
- Widening nfsd_gc_lock in both nfsd_file_gc() and nfsd_file_lru_scan()
to cover the nfsd_file_dispose_list_delayed() call.
- Wrapping nfsd_file_close_inode() in nfsd_gc_lock so that all three
callers of nfsd_file_dispose_list_delayed() hold the lock.
- Adding a spin_lock/unlock(nfsd_gc_lock) barrier in
nfsd_file_cache_shutdown_net() after the purge, so that any in-progress disposal has fully completed before the per-net list is drained.
All operations inside the lock are non-sleeping (rhashtable lookups, atomic bit/refcount ops, list moves, svc_wake_up), so the spinlock is appropriate.
AnalysisAI
Resource leak race condition in the Linux kernel NFS server (NFSD) filecache allows orphaned nfsd_file objects to accumulate when network-namespace shutdown races with the GC worker, shrinker, or fsnotify/lease callbacks. When nfsd_file_cache_shutdown_net() runs concurrently with any of these three paths, already-unhashed files queued to the per-net dispose list are missed by the shutdown drain, leaving both the file handle and associated NFS state permanently leaked. …
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 | Requires a Linux 6.9+ kernel with the nfsd module loaded and actively exporting NFS shares. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The input CVSS of 8.1 (AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:H) is substantially overstated. … 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 | Upgrade to Linux kernel 7.2.4, 6.18.51, or 7.3-rc1 (or later), which contain the fix that widens nfsd_gc_lock coverage and adds the shutdown barrier. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory all NFS server systems and identify those running Linux kernel 6.9 or later versions. …
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-76579
GHSA-f2vv-wrgm-2rrj