Look up another CVE · open CVE-2026-89674 in the interactive tracker
CVE-2026-89674
nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget
Published 2026-09-11 (37 days ago) by the Linux kernel CNA. Subsystem fs/nfsd. Debian urgency: not yet assigned.
Debian does not build this code. The per-release build detail is under "Where it lives" below.
What to do, per Debian release
Debian's own status for CVE-2026-89674 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | fixedDLA-4841-1 · 2026-10-17 · text | 6.1.190-1 | Update the kernel and reboot. DLA-4841-1 shipped the fix on 2026-10-17, in 6.1.190-1. A running kernel keeps the old code until the machine restarts. |
| Debian 13trixie | fixedDSA-6528-1 · 2026-09-29 · text | 6.12.111-1 | Update the kernel and reboot. DSA-6528-1 shipped the fix on 2026-09-29, in 6.12.111-1. A running kernel keeps the old code until the machine restarts. |
| Debian 14forky | fixed | 7.2.6-1 | Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.2.6-1 | Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts. |
| Debian 12bookworm · linux-6.12 | fixedDLA-4817-1 · 2026-10-04 · text | 6.12.111-1~deb12u1 | Update the kernel and reboot. DLA-4817-1 shipped the fix on 2026-10-04, in 6.12.111-1~deb12u1. A running kernel keeps the old code until the machine restarts. |
The vulnerability
What the bug is
The XDR buffer size calculation in nfsd4_ff_encode_layoutget() has multiple errors that can result in either an out-of-bounds write or leaking uninitialized kernel memory to the client: - fh_len doesn't account for XDR padding on the file handle data - uid and gid lengths use "8 + len" but xdr_encode_opaque() actually writes "4 + xdr_align_size(len)" bytes - ds_len omits the flags and stats_collect_hint fields (8 bytes), while len's header constant overestimates by 8 bytes -- these partially cancel but leave a net mismatch The worst case occurs with short strings (e.g. uid=0, gid=0 with an odd-sized file handle), where the function writes up to 5 bytes past the reserved XDR buffer. Conversely, when string lengths happen to be 4-byte aligned, the reservation is too large and stale buffer content is sent to the client. Fix this by breaking out every encoded field explicitly in the ds_len calculation, using xdr_align_size() for all variable-length opaque fields, and correcting the header constants.
Where it lives
The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.
fs/nfsd/flexfilelayoutxdr.c
- What this is
- KERNEL NFSD, SUNRPC, AND LOCKD SERVERSMAINTAINERS section matched on fs/nfsd/ · linux-nfs@vger.kernel.org · Supported
- Kernel module
- none to look for. The file would have gone into nfsd, and Debian does not compile it into that module, so finding nfsd in lsmod would say nothing about this CVE.
Check it on the machine
grep -wE 'CONFIG_NFSD|CONFIG_NFSD_FLEXFILELAYOUT' /boot/config-$(uname -r)Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.
Show whether Debian builds this, per release
Debian does not build this code. In 5 releases below, every kernel flavour Debian publishes has the switch off, so the vulnerable file is compiled into no kernel binary Debian ships.
- bookworm, trixie, forky, sid, bookworm · linux-6.12n
- n
- not enabled on any flavour - this release does not build the code
- Build switches
- CONFIG_NFSD, CONFIG_NFSD_FLEXFILELAYOUT
- Reads as
- all on means the file is compiled; any one off means it is not.
From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages
Signals
- Published
- 2026-09-11 (37 days ago)source
- CVSS
- 9.8 critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsource recompute it - Attack vector
- network (AV:N)source
- EPSS
- 0.51%, higher than 42.5% of all CVEssource
- CISA KEV
- not listedthe KEV catalogue
- Debian urgency
- not yet assignedsource
- Subsystem
- fs/nfsd
Upstream fixes
The versions the CNA records as introducing and fixing this, and the commit for each. source
| Introduced | Fixed in | Commit |
|---|---|---|
| 4.8 | 5.10.270 | 3a7fd224df0f |
| 4.8 | 5.15.221 | 29e4478e2ed5 |
| 4.8 | 6.1.188 | 65a72b721943 |
| 4.8 | 6.6.157 | bee826c00ac9 |
| 4.8 | 6.12.109 | e7d9d23ecd91 |
| 4.8 | 6.18.50 | 0380129b1373 |
| 4.8 | 7.2.4 | c81cef6a805d |
| 4.8 | 7.3 | f9868174af49 |
Debian advisories
| Advisory | Date | Shipped to | Debian |
|---|---|---|---|
| DLA-4841-1 | 2026-10-17 | bookworm 6.1.190-1 | tracker |
| DLA-4817-1 | 2026-10-04 | bookworm 6.12.111-1~deb12u1 | tracker |
| DSA-6528-1 | 2026-09-29 | trixie 6.12.111-1 | tracker |
Why the CNA scored it this way
Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source
- AV:NAttack vector, network
- The bug is in nfsd's pNFS flexfile LAYOUTGET encoder (nfsd4_ff_encode_layoutget). A remote NFSv4.1 client reaches it over TCP/2049 via COMPOUND SEQUENCE, PUTFH, OPEN, and LAYOUTGET on the in-kernel NFS server.
- AC:LAttack complexity, low
- A client that can OPEN a file on a flexfile pNFS export issues LAYOUTGET and hits the miscalculated xdr_reserve_space length. Root-owned files yield uid/gid "0", and PUTFH may append 1-3 bytes ignored by fh_verify so fh.size is odd; no race is required.
- PR:NPrivileges required, none
- Typical nfsd deployments accept AUTH_SYS/AUTH_NULL without cryptographic authentication. Any host allowed by the export ACL can EXCHANGE_ID/CREATE_SESSION, PUTFH/OPEN, and LAYOUTGET; no local account on the NFS server is required.
- UI:NUser interaction, none
- The attacking NFS client drives the compounds that open a file and request a flexfile layout. No victim user action such as mounting a filesystem or opening a file on the server is required.
- S:UScope, unchanged
- The out-of-bounds write and kernel-memory leak occur in the NFS server host's XDR reply buffer. Impact stays in that kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.
- C:HConfidentiality impact, high
- When the reservation is too large, stale uninitialized kernel bytes in the RPC reply are sent to the client. The matching out-of-bounds write is kernel memory corruption that can be leveraged for information disclosure per CVSS kernel guidance.
- I:HIntegrity impact, high
- Worst case the encoder writes up to 5 bytes past the xdr_reserve_space region, including across a reply-page boundary into adjacent kernel memory. Kernel CNA guidance scores out-of-bounds writes as High integrity impact.
- A:HAvailability impact, high
- A write past the current XDR page (xdr->end) into an unmapped or unrelated page oopses or panics nfsd. The attacker can pad prior COMPOUND ops to place the LAYOUTGET encode at a page boundary and repeat the request to deny service.