CVE-2026-64268 in Linux
Summary
by MITRE • 07/25/2026
In the Linux kernel, the following vulnerability has been resolved:
RDMA/siw: bound Read Response placement to the RREAD length
In drivers/infiniband/sw/siw/siw_qp_rx.c, siw_proc_rresp() places each inbound Read Response DDP segment at sge->laddr + wqe->processed and then accumulates wqe->processed, but it never checks the running total against the sink buffer length on continuation segments. siw_check_sge() resolves and validates the sink memory only on the first fragment (the if (!*mem) branch), and siw_rresp_check_ntoh() compares the cumulative length against wqe->bytes only on the final segment (the !frx->more_ddp_segs guard).
A connected siw peer that answers an outstanding RREAD with Read Response segments that keep the DDP Last flag clear, carrying more total payload than the RREAD requested, drives wqe->processed past the validated sink buffer; the next siw_rx_data() call writes out of bounds at sge->laddr + wqe->processed. siw runs iWARP over ordinary routable TCP, so the peer is the remote end of an established RDMA connection and needs no local privilege.
Bound every segment before placement, exactly as siw_proc_send() and siw_proc_write() already do for their tagged and untagged paths, and terminate the connection with a base-or-bounds DDP error when the Read Response would overrun the sink buffer.
This is the second receive-path length fix for this file. A separate change rejects an MPA FPDU length that underflows the per-fragment remainder in the header decode; that guard does not cover this case, because here each individual segment length is self-consistent and only the accumulated placement offset overruns the buffer.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Analysis
by VulDB Data Team • 07/25/2026
The vulnerability described represents a critical out-of-bounds memory write condition within the Linux kernel's InfiniBand software implementation, specifically affecting the siw (software iWARP) component that handles RDMA over Converged Ethernet operations. This flaw exists in the handling of Read Response segments during the receive path processing, where the kernel fails to properly validate buffer boundaries when processing continuation DDP segments. The issue stems from improper bounds checking in the siw_proc_rresp() function located within drivers/infiniband/sw/siw/siw_qp_rx.c, creating a scenario where malicious remote peers can exploit the lack of cumulative validation to write data beyond allocated memory buffers.
The technical implementation flaw manifests when processing inbound Read Response DDP segments that maintain the DDP Last flag clear across multiple fragments. The system validates the sink memory buffer only during the initial fragment processing through siw_check_sge() which operates within an if (frx->more_ddp_segs guard that checks against wqe->bytes but only for the terminal fragment. This design gap allows attackers to construct Read Response segments where individual segment lengths are valid but their cumulative placement exceeds the originally validated buffer boundaries, causing memory corruption at sge->laddr + wqe->processed.
The operational impact of this vulnerability is significant as it enables remote code execution or system instability without requiring local privileges. Since siw operates over standard TCP connections using iWARP protocols, an attacker merely needs to establish a valid RDMA connection with a vulnerable system to exploit this flaw. The vulnerability affects the entire receive path processing pipeline and represents a second such issue discovered in this file, indicating potential systemic problems in buffer validation logic. According to CWE taxonomy, this maps to CWE-129: Improper Validation of Array Index and CWE-787: Out-of-bounds Write, while the ATT&CK framework would classify this under T1059.007: Command and Scripting Interpreter: Unix Shell for potential exploitation paths.
The recommended mitigation strategy involves implementing strict bounds checking on every DDP segment before placement, similar to existing validation patterns already implemented in siw_proc_send() and siw_proc_write() functions for their respective pathways. The fix requires ensuring that each segment's placement location is validated against the total sink buffer size before writing occurs, with connection termination using base-or-bounds DDP error codes when buffer overruns are detected. This approach aligns with established security practices for memory safety validation and follows the principle of least privilege by preventing any single segment from corrupting memory beyond its intended boundaries. The vulnerability demonstrates the importance of comprehensive bounds checking in network protocol implementations where fragmented data processing can create subtle validation gaps that attackers can exploit to achieve arbitrary code execution or system compromise.