CVE-2026-89670
Received Received - Intake

Use-After-Free in Linux Kernel NFS Daemon

Vulnerability report for CVE-2026-89670, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-11

Last updated on: 2026-09-11

Assigner: kernel.org

Description

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-11
Last Modified
2026-09-11
Generated
2026-09-12
AI Q&A
2026-09-12
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux_kernel nfsd *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a use-after-free vulnerability in the Linux kernel's NFS server (nfsd). It occurs when a freed nfsd_file object is accessed due to missing RCU protection during a cmpxchg operation. The flaw allows a non-zero word in recycled memory to falsely increment a reference count, leading to dereferencing of freed memory and potential arbitrary code execution.

Detection Guidance

This vulnerability is specific to the Linux kernel's nfsd implementation and requires kernel-level inspection. Detection involves checking kernel logs for crashes or memory corruption related to nfsd_file operations. Commands like dmesg | grep nfsd or journalctl -k | grep nfsd may reveal issues. However, no direct detection commands are provided in the context.

Impact Analysis

If exploited, this could allow an attacker to execute arbitrary code on the system with kernel privileges, leading to complete system compromise. It may also cause kernel crashes (denial of service) or data corruption. Systems running vulnerable NFS server versions are at risk.

Mitigation Strategies

Apply the kernel patch that adds rcu_read_lock() protection around the cmpxchg operation in nfsd_open_local_fh(). Update to a fixed kernel version where this issue is resolved. Monitor for crashes or memory corruption in nfsd-related processes after applying the patch.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-89670. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart