ZeroHour

CVE-2026-89545

mass

Use-After-Free in Linux Kernel sunrpc/nfsd RPC Status Handling

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's sunrpc subsystem frees the per-request buffers rq_argp and rq_resp synchronously in svc_rqst_free(), while deferring the containing svc_rqst struct to kfree_rcu(), leaving a window in which RCU readers can still traverse the thread list and dereference an already-freed pointer. The flaw is triggered when an nfsd thread exits via svc_exit_thread() and a concurrent reader such as nfsd_nl_rpc_status_get_dumpit() (the NFSD netlink RPC-status dump) accesses rqstp->rq_argp, producing a use-after-free. Exploitation is a local, low-privilege attack (CVSS 3.1: 7.8) that can impact confidentiality, integrity, and availability at high levels, consistent with kernel memory corruption usable for privilege escalation or a system crash. Any host running a kernel with the vulnerable sunrpc/NFSD code path — principally Linux systems running NFS service — is affected; the source data does not enumerate specific affected or fixed kernel versions. No public proof of concept is known and the issue does not appear in the CISA KEV catalog.

What to do: Apply your distribution's kernel update containing the sunrpc fix that moves the kfree of rq_argp and rq_resp into a call_rcu() callback; fixed version numbers vary by vendor, so track distro advisories referencing CVE-2026-89545. Until patched, restrict local untrusted accounts and access to the NFSD netlink RPC-status interface, and watch kernel logs for OOPS/BUG reports in sunrpc/nfsd as a sign of attempted triggering.

Affected
Linux kernel (sunrpc / nfsd)
Estimated exposure
masspotentially hundreds of millions of Linux systems ship the sunrpc/nfsd code, though reaching the bug requires local low-privilege access and the NFSD… — Linux runs the majority of servers, cloud instances, and Android devices, and sunrpc/NFSD support is built into most distribution kernels, so the affected code is present across an enormous installed base even if the exploitable path is…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: sunrpc: defer rq_argp and rq_resp free until after RCU grace period svc_rqst_free() frees rqstp->rq_argp and rqstp->rq_resp synchronously via kfree(), but defers the rqstp struct free via kfree_rcu(). After svc_exit_thread() calls list_del_rcu() and svc_rqst_free(), there is a window where RCU readers that started before list_del_rcu() can still traverse the thread list and find the rqstp. These readers (e.g. nfsd_nl_rpc_status_get_dumpit()) dereference rqstp->rq_argp, which has already been freed — a use-after-free. Fix this by moving the kfree of rq_argp and rq_resp into an explicit call_rcu() callback alongside the struct free. Resources not accessed by RCU readers (bvec, buffer pages, scratch folio, auth_data) remain synchronously freed.

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.