CVE-2026-64268: RDMA/siw: bound Read Response placement to the RREAD length
Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:48:05 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072559-CVE-2026-64268-629a@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== 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. The Linux kernel CVE team has assigned CVE-2026-64268 to this issue. Affected and fixed versions =========================== Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 5.10.261 with commit a31b6d18ded3cc32d9ee85a6ff0726d4274887b2 Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 5.15.212 with commit 595e6537ad1a210da32cbb9a7f91aa73090915ba Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 6.1.178 with commit 3ef7e052cbd05a8b13a51a07b185a39ec93ee1cf Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 6.6.145 with commit b2e26c955f8dd7e8d3f16c858db05245ea4fa817 Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 6.12.96 with commit 6bc89f34a4597f9f6d41f7a60c67a3153bfe8851 Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 6.18.39 with commit 423a78ff7928c2601013f73ec6d896f5597d0df5 Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 7.1.4 with commit 75c93cd3c421890f49ea93f0b978b9b7bb10e5e3 Issue introduced in 5.3 with commit 8b6a361b8c482f22ac99c3273285ff16b23fba91 and fixed in 7.2-rc1 with commit 7d29f7e9dbd844cae4d3e559cf78324b9642fd6b Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64268 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: drivers/infiniband/sw/siw/siw_qp_rx.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/a31b6d18ded3cc32d9ee85a6ff0726d4274887b2 https://git.kernel.org/stable/c/595e6537ad1a210da32cbb9a7f91aa73090915ba https://git.kernel.org/stable/c/3ef7e052cbd05a8b13a51a07b185a39ec93ee1cf https://git.kernel.org/stable/c/b2e26c955f8dd7e8d3f16c858db05245ea4fa817 https://git.kernel.org/stable/c/6bc89f34a4597f9f6d41f7a60c67a3153bfe8851 https://git.kernel.org/stable/c/423a78ff7928c2601013f73ec6d896f5597d0df5 https://git.kernel.org/stable/c/75c93cd3c421890f49ea93f0b978b9b7bb10e5e3 https://git.kernel.org/stable/c/7d29f7e9dbd844cae4d3e559cf78324b9642fd6b