KernelScan.io

HIGH Introduced in 4.13

svcrdma ReadList Deref

CVE-2026-89528

CVSS 7.5 / 10.0 NVD

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

KernelScan AI7.5HIGH

01

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.

02

Engine v0.6.0

Risk summary

A remote attacker who can reach an NFS server configured with RDMA transport can send a crafted RPC-over-RDMA request whose Read list exceeds the server's page budget, causing a NULL pointer dereference and kernel panic. No authentication or special privileges are required — the vulnerable decode path runs before RPC authentication. Any deployment exposing NFS/RDMA to untrusted networks is at risk of denial of service.

Affectednet/sunrpc/xprtrdma/svc_rdma_recvfrom.c (svcrdma)

Vulnerability analysis

The NFS server's RDMA transport checks each incoming read segment's size on its own, but does not add up the sizes of all segments in one request. A malicious client can send many segments whose combined size exceeds the buffer reserved for incoming data. When earlier segments fill that buffer exactly, the server skips the remaining safety check and later tries to use an invalid address, crashing the kernel while preparing direct memory access. The fix totals all segment lengths while decoding the request and discards the whole message early if the combined size would overflow the buffer. Any remote client that can connect to an NFS server over RDMA can trigger this, because the vulnerable parsing happens before the server checks who sent the request.

03

BranchIntroducedFixed inPatch commit
6.124.136.12.114e70fdb121171
6.184.136.18.511a3af2262cb3
6.64.136.6.160beb4e9801f63
7.24.137.2.4465f511f59a0
mainline4.137.30ca487abb3bd

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Affected — no CIP fix yet (latest 6.12.112-cip33)
cip/6.1Affected — no CIP fix yet (latest 6.1.189-cip61)
cip/6.1-rtAffected — no CIP fix yet (latest 6.1.189-cip61-rt32)
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)