CVE-2026-74346

Summary

In the Linux kernel, the following vulnerability has been resolved:

RDMA/irdma: Fix OOB read during CQ MR registration

Sashiko pointed out an unrelated bug during a previous patch: https://sashiko.dev/#/patchset/20260512183852.614045-1-jmoroni%40google.com

This change fixes the bug by eliminating the cqmr->split field which was not being set properly and instead just checks the CQ resize feature flag directly.

The cqmr->split field essentially tracks whether IRDMA_FEATURE_CQ_RESIZE is set, but it was not being set until CQ creation time, which is after CQ memory registration (the only other place where it is referenced).

As a result, it would always be false during MR registration and would therefore cause irdma_handle_q_mem to populate cqmr->shadow even for GEN_2 HW and beyond:

cqmr->shadow = (dma_addr_t)arr[req->cq_pages];

The issue is that for GEN_2 and beyond, req->cq_pages may be exactly equal to iwmr->page_cnt and therefore equal to the size of arr, which would cause an OOB read by one.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < a80b3b13786e9ab1c52b31a1f16c7d6708fa9220affected
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < 3159c6fac43dc24b34d31971884d98a7a1bf4c4baffected
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < ad360a31092a870633ec255b96f50181628b4de0affected
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < d566002de555b18cc395012c5c1cb8682fc6d2a9affected
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < 54cab78df0375196aaec4e3109191653d21751dfaffected
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < d5aa82da8f65562da996d184686db9d0ea718b91affected
LinuxLinuxb48c24c2d710cf34810c555dcef883a3d35a9c08 < 4385ddd654d90245eeb83b3cb539670ab5c85ba4affected
LinuxLinux5.14affected
LinuxLinux0 < 5.14unaffected
LinuxLinux5.15.212 <= 5.15.*unaffected
LinuxLinux6.1.178 <= 6.1.*unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.97 <= 6.12.*unaffected
LinuxLinux6.18.40 <= 6.18.*unaffected
LinuxLinux7.1.5 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References