CVE-2026-89528
moderateRemote kernel crash DoS in Linux svcrdma (NFS-over-RDMA) via oversized Read lists
The Linux kernel's svcrdma layer, which handles RPC-over-RDMA requests for the NFS server, validated each individual Read segment's length but failed to check the cumulative page count across all segments in a request. A malicious or buggy NFS client can send an RPC-over-RDMA message containing multiple Read segments whose combined length exceeds the server's rq_pages page budget, causing svc_rdma_build_read_segment() to walk past the end of the array and dereference the NULL sentinel slot during DMA mapping. The result is a kernel NULL pointer dereference, crashing the machine (or the affected execution path) and causing a denial of service; there is no impact on confidentiality or integrity. Only systems running an NFS server with the RDMA transport enabled (typically HPC and datacenter clusters with InfiniBand/RoCE fabrics) are exposed, and an attacker must be able to reach the RDMA listener, which is rarely internet-facing. There is no evidence of exploitation in the wild and no public proof of concept.
What to do: Apply your distribution's kernel update that includes the svcrdma fix, which now rejects any Read list whose cumulative page count exceeds rq_pages at decode time. If you do not need NFS over RDMA, verify the nfsd RDMA transport is not listening (typically port 20049) and disable it; systems without RPC-over-RDMA server support are unaffected. Where RDMA NFS is required, restrict the RDMA listener to trusted client networks, since the flaw is triggerable by any unauthenticated client that can reach it.
| Linux kernel (svcrdma / RPC-over-RDMA server transport) | Kernel versions carrying the vulnerable svcrdma code prior to the fixing commit that accumulates pages across Read segments and rejects overflow at decode time; |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject Read lists that exceed the page budget Individual Read segment lengths are validated at decode time, but nothing prevents a requester from sending multiple segments whose cumulative length exceeds the rq_pages array budget. When one segment fills the page array exactly, the runtime guard in svc_rdma_build_read_segment() is bypassed because len reaches zero. A subsequent segment then accesses the NULL sentinel slot at rq_pages[rq_maxpages], resulting in a NULL pointer dereference during DMA mapping. Accumulate pages across all Read segments and reject the message at decode time when the total would overflow the page budget.
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
In the news0 stories
No ingested article mentions this CVE yet.