CVE-2026-90103

NFSv4.2: fix LAYOUTSTATS send buffer exhaustion

HIGH
7.5
CVSS Score
Published: September 17, 2026 at 04:06 PM UTC
Updated: October 19, 2026 at 09:18 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.5
Exploit prediction
EPSS 0.7%

Description

In the Linux kernel, the following vulnerability has been resolved: NFSv4.2: fix LAYOUTSTATS send buffer exhaustion encode_layoutstats_maxsz budgets XDR_QUADLEN(PNFS_LAYOUTSTATS_MAXSIZE), i.e. 256 bytes, for the layoutupdate4 body written by the layout driver. The flexfiles record can exceed that. ff_layout_encode_ff_layoutupdate() emits, per data server, a netaddr4, an nfs_fh4, two ff_io_latency4, an nfstime4 and a bool. A data server whose filehandle is NFS_MAXFHSIZE bytes long already accounts for 132 of those bytes, and the two ff_io_latency4 at 64 bytes each, the nfstime4 and the bool add a further 144, so the body passes 256 bytes before the netaddr4 is encoded at all. encode_layoutstats() additionally writes the deviceid4 and the layoutupdate4 lou_type word, neither of which the macro accounts for. The filehandle and the address are both chosen by the server, through LAYOUTGET and GETDEVICEINFO, so it can drive the encoder past the end of the send buffer. xdr_reserve_space() returns NULL once that happens, and the two ff_layout_encode_io_latency() calls run with dss_info->mirror->lock held, so a NULL return there leaves the lock permanently held. Raise PNFS_LAYOUTSTATS_MAXSIZE to 384 so that the record fits inside the reservation.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

27c430644369ccd9a2272492ba6d0e85e2e4800b4.2
Vendor states this is fixed in 3815b894b922e9b4f40b8b6f6d67bf80d44141c9 (fixed)
Vendor states this is fixed in 397aa7000bbf6b6a0d32e66a544e978fb478c8e4 (fixed)
Vendor states this is fixed in 5aca000630c0fd0da102ae1abf9245dd74f2ce36 (fixed)
Vendor states this is fixed in 842ac26615424577f24f0486b9d3bf97f28fad9c (fixed)
Vendor states this is fixed in a973622da0c62c34043ddbbf382cd761b03e5136 (fixed)
Vendor states this is fixed in c75ef2137e749f2673f0617cfdaae53b2bb7195a (fixed)
Vendor states this is fixed in cb11590c7ddc6883a1b1d70b1f98b2779fe626f2 (fixed)
Vendor states this is fixed in e82d7d999fe9f893f84bf332fd39cb5d9de7128f (fixed)
Vendor states this is fixed in 4.2 (unaffected)
Vendor states this is fixed in 5.10.270 (unaffected)
Vendor states this is fixed in 5.15.221 (unaffected)
Vendor states this is fixed in 6.1.188 (unaffected)
Vendor states this is fixed in 6.12.110 (unaffected)
Vendor states this is fixed in 6.18.52 (unaffected)
Vendor states this is fixed in 6.6.157 (unaffected)
Vendor states this is fixed in 7.2.6 (unaffected)
Vendor states this is fixed in 7.3 (unaffected)
Vendor states this is fixed in 7.3-rc1 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

CVSS

7.5HIGHLinux
Vector?

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card