CVE-2026-64269: RDMA/rtrs-srv: Bound RDMA-Write length to chunk size in rdma_write_sg
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rtrs-srv: Bound RDMA-Write length to chunk size in rdmawritesg
When the server answers an RTRS READ, rdmawritesg() builds the source scatter/gather entry for the IBWRRDMAWRITE that returns data to the peer. Its length is taken directly from the wire descriptor:
plist->length = le32tocpu(id->rdmsg->desc[0].len);
rdmsg points into the chunk buffer that the remote peer filled via RDMA-WRITE-WITH-IMM (rtrssrvrdmadone() -> processioreq() -> processread()), so desc[0].len is attacker-controlled and, before this change, was only rejected when zero. The source address is the fixed chunk start (dmaaddr[msgid]) and the source lkey is the PD-wide localdmalkey, which is not tied to the chunk's MR mapping, so the verbs layer does not constrain the transfer length to maxchunksize. msgid and off are bounded against queuedepth and maxchunksize in rtrssrvrdmadone(), but desc[0].len is a separate field that was not checked against the chunk size.
A peer that advertises desc[0].len larger than maxchunksize can make the posted RDMA write read past the chunk's mapped region. The resulting behaviour depends on the IOMMU configuration: with no IOMMU or in passthrough mode the read may extend into memory adjacent to the chunk and be returned to the peer, which can disclose host memory; with a translating IOMMU the out-of-range access is expected to fault and abort the connection. In either case the transfer exceeds what the protocol permits and is driven by a remote peer.
Reject a descriptor length above maxchunksize, mirroring the existing off >= maxchunksize bound in rtrssrvrdmadone(). Legitimate clients do not exceed it: the client sets desc[0].len to its MR length, which is capped at the negotiated maxiosize (maxchunksize - MAXHDRSIZE).
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.145.2-1 - Upgrade
Upgrade
Linux kernel (RDMA/rtrs-srv)to a version that resolves this vulnerability.Patch RDMA/rtrs-srv: Bound RDMA-Write length to chunk size in rdma_write_sg - Configuration
In rtrs_srv_rdma_done()/process_io_req (via rdma_write_sg), reject an attacker-controlled descriptor length (desc[0].len) if it exceeds max_chunk_size, mirroring the existing logic that bounds transfers against queue_depth and max_chunk_size.
RDMA/rtrs-srv Bound descriptor length (desc[0].len) = Reject any RDMA descriptor length above max_chunk_size
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64269?
CVE-2026-64269 has a critical severity score of 9.1 according to the CVSS 3.1 metrics.
How do I fix CVE-2026-64269?
To fix CVE-2026-64269, update your Linux kernel to the latest version where this vulnerability has been resolved.
What impact does CVE-2026-64269 have on my system?
CVE-2026-64269 can potentially allow an attacker to perform unauthorized RDMA-Write operations, compromising the integrity and availability of your system.
Which software is affected by CVE-2026-64269?
CVE-2026-64269 affects the Linux kernel, specifically the RDMA/rtrs-srv component.
When was CVE-2026-64269 published?
CVE-2026-64269 was published on July 25, 2026.