CVE-2026-74346
N/A
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
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < a80b3b13786e9ab1c52b31a1f16c7d6708fa9220 | affected |
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < 3159c6fac43dc24b34d31971884d98a7a1bf4c4b | affected |
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < ad360a31092a870633ec255b96f50181628b4de0 | affected |
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < d566002de555b18cc395012c5c1cb8682fc6d2a9 | affected |
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < 54cab78df0375196aaec4e3109191653d21751df | affected |
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < d5aa82da8f65562da996d184686db9d0ea718b91 | affected |
| Linux | Linux | b48c24c2d710cf34810c555dcef883a3d35a9c08 < 4385ddd654d90245eeb83b3cb539670ab5c85ba4 | affected |
| Linux | Linux | 5.14 | affected |
| Linux | Linux | 0 < 5.14 | unaffected |
| Linux | Linux | 5.15.212 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.178 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.145 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.97 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.40 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.5 <= 7.1.* | unaffected |
| Linux | Linux | 7.2 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/a80b3b13786e9ab1c52b31a1f16c7d6708fa9220
- https://git.kernel.org/stable/c/3159c6fac43dc24b34d31971884d98a7a1bf4c4b
- https://git.kernel.org/stable/c/ad360a31092a870633ec255b96f50181628b4de0
- https://git.kernel.org/stable/c/d566002de555b18cc395012c5c1cb8682fc6d2a9
- https://git.kernel.org/stable/c/54cab78df0375196aaec4e3109191653d21751df
- https://git.kernel.org/stable/c/d5aa82da8f65562da996d184686db9d0ea718b91
- https://git.kernel.org/stable/c/4385ddd654d90245eeb83b3cb539670ab5c85ba4
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.