nfsd: size fh_verify server sockaddr slot by xpt_locallen
CVE-2026-89702 · published 11 Sept 2026
How serious is it
- Severity: critical, CVSS score 9.8 out of 10.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2026-89702?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
- Linux Linux: 051382885552e12541cc0ebf82092be374a9ed2a to < 1c6a4d6c20fd42552ffc2c3dfaed2139c9477ee5, 051382885552e12541cc0ebf82092be374a9ed2a to < 95d064f9828a20ccca5ae90a17be3e2076f25272, 051382885552e12541cc0ebf82092be374a9ed2a to < 7ff8d6363cffff45654ea85e319f7c0c54226012, 051382885552e12541cc0ebf82092be374a9ed2a to < 719a10e3f5f868c3c4ac3cf3648c5775d12034bd
- Linux Linux: 6.0
How to check
- Find out whether you run the affected product and which version, then compare it with the versions above.
How to fix
Copies a prompt for Claude Code, Cursor or Codex that asks it to check whether you run this product.
- Apply the vendor's update or mitigation from the references below. If there is none yet, limit exposure of the affected service until there is.
- If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
In the Linux kernel, the following vulnerability has been resolved:
nfsd: size fh_verify server sockaddr slot by xpt_locallen
The nfsd_fh_verify and nfsd_fh_verify_err tracepoints declare the
server sockaddr slot sized by xpt_remotelen but fill it from
xpt_local using xpt_locallen:
TP_STRUCT__entry(
...
__sockaddr(server, rqstp->rq_xprt->xpt_remotelen)
...
)
TP_fast_assign(
...
__assign_sockaddr(server, &rqstp->rq_xprt->xpt_local,
rqstp->rq_xprt->xpt_locallen);
...
)
When xpt_locallen exceeds xpt_remotelen, __assign_sockaddr's memcpy
writes past the reserved ring-buffer slot. In the reverse direction
(xpt_locallen < xpt_remotelen) the slot is oversized and the
unwritten tail leaks prior ring-buffer contents to trace consumers.
The write-past-end case is reachable on NFS/UDP. svc_xprt_set_remote()
is only called from svc_tcp_accept() (net/sunrpc/svcsock.c) and from
the RDMA connect path; svc_create_socket() for UDP calls only
svc_xprt_set_local(), so xpt_remotelen stays 0 for the xprt's
lifetime. Every fh_verify trace for an NFSv2/v3-over-UDP request
then copies 16 or 28 bytes from xpt_local into a zero-byte slot.
The other NFSD tracepoints that record the server address
(NFSD_TRACE_PROC_CALL_FIELDS, NFSD_TRACE_PROC_RES_FIELDS,
SVC_RQST_ENDPOINT_FIELDS) already size the server slot by
xpt_locallen; nfsd_fh_verify and nfsd_fh_verify_err were the only
exceptions.
Fix by sizing the server slot with xpt_locallen so the declared slot
matches the copy length. The client slot and its assignment already
agree on xpt_remotelen and are left untouched.
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- git.kernel.org/stable/c/1c6a4d6c20fd42552ffc2c3dfaed2139c9477ee5
- git.kernel.org/stable/c/95d064f9828a20ccca5ae90a17be3e2076f25272
- git.kernel.org/stable/c/7ff8d6363cffff45654ea85e319f7c0c54226012
- git.kernel.org/stable/c/719a10e3f5f868c3c4ac3cf3648c5775d12034bd
- git.kernel.org/stable/c/71d068490098b1d23c63b2345e40675d3a1ca763
Merged from CVE List. Last updated 26 Oct 2026. All vulnerabilities · RSS · JSON