{"id":"CVE-2026-74346","state":"PUBLISHED","title":"RDMA/irdma: Fix OOB read during CQ MR registration","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/irdma: Fix OOB read during CQ MR registration\n\nSashiko pointed out an unrelated bug during a previous patch:\nhttps://sashiko.dev/#/patchset/20260512183852.614045-1-jmoroni%40google.com\n\nThis change fixes the bug by eliminating the cqmr->split field which\nwas not being set properly and instead just checks the CQ resize\nfeature flag directly.\n\nThe cqmr->split field essentially tracks whether IRDMA_FEATURE_CQ_RESIZE\nis set, but it was not being set until CQ creation time, which is _after_\nCQ memory registration (the only other place where it is referenced).\n\nAs a result, it would always be false during MR registration and would\ntherefore cause irdma_handle_q_mem to populate cqmr->shadow even for GEN_2\nHW and beyond:\n\n    cqmr->shadow = (dma_addr_t)arr[req->cq_pages];\n\nThe issue is that for GEN_2 and beyond, req->cq_pages may be exactly equal\nto iwmr->page_cnt and therefore equal to the size of arr, which would cause\nan OOB read by one.","publishedAt":"2026-08-15T05:58:34.606Z","updatedAt":"2026-08-17T05:17:38.929Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"a80b3b13786e9ab1c52b31a1f16c7d6708fa9220","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"3159c6fac43dc24b34d31971884d98a7a1bf4c4b","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"ad360a31092a870633ec255b96f50181628b4de0","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"d566002de555b18cc395012c5c1cb8682fc6d2a9","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"54cab78df0375196aaec4e3109191653d21751df","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"d5aa82da8f65562da996d184686db9d0ea718b91","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"4385ddd654d90245eeb83b3cb539670ab5c85ba4","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/irdma/verbs.c","drivers/infiniband/hw/irdma/verbs.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.14","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/irdma/verbs.c","drivers/infiniband/hw/irdma/verbs.h"]}],"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"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74346.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74346","state":"PUBLISHED","datePublished":"2026-08-15T05:58:34.606Z","dateUpdated":"2026-08-17T05:17:38.929Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.886Z"},"containers":{"cna":{"title":"RDMA/irdma: Fix OOB read during CQ MR registration","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/irdma: Fix OOB read during CQ MR registration\n\nSashiko pointed out an unrelated bug during a previous patch:\nhttps://sashiko.dev/#/patchset/20260512183852.614045-1-jmoroni%40google.com\n\nThis change fixes the bug by eliminating the cqmr->split field which\nwas not being set properly and instead just checks the CQ resize\nfeature flag directly.\n\nThe cqmr->split field essentially tracks whether IRDMA_FEATURE_CQ_RESIZE\nis set, but it was not being set until CQ creation time, which is _after_\nCQ memory registration (the only other place where it is referenced).\n\nAs a result, it would always be false during MR registration and would\ntherefore cause irdma_handle_q_mem to populate cqmr->shadow even for GEN_2\nHW and beyond:\n\n    cqmr->shadow = (dma_addr_t)arr[req->cq_pages];\n\nThe issue is that for GEN_2 and beyond, req->cq_pages may be exactly equal\nto iwmr->page_cnt and therefore equal to the size of arr, which would cause\nan OOB read by one."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"a80b3b13786e9ab1c52b31a1f16c7d6708fa9220","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"3159c6fac43dc24b34d31971884d98a7a1bf4c4b","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"ad360a31092a870633ec255b96f50181628b4de0","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"d566002de555b18cc395012c5c1cb8682fc6d2a9","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"54cab78df0375196aaec4e3109191653d21751df","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"d5aa82da8f65562da996d184686db9d0ea718b91","versionType":"git"},{"version":"b48c24c2d710cf34810c555dcef883a3d35a9c08","status":"affected","lessThan":"4385ddd654d90245eeb83b3cb539670ab5c85ba4","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/irdma/verbs.c","drivers/infiniband/hw/irdma/verbs.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.14","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/irdma/verbs.c","drivers/infiniband/hw/irdma/verbs.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/a80b3b13786e9ab1c52b31a1f16c7d6708fa9220"},{"url":"https://git.kernel.org/stable/c/3159c6fac43dc24b34d31971884d98a7a1bf4c4b"},{"url":"https://git.kernel.org/stable/c/ad360a31092a870633ec255b96f50181628b4de0"},{"url":"https://git.kernel.org/stable/c/d566002de555b18cc395012c5c1cb8682fc6d2a9"},{"url":"https://git.kernel.org/stable/c/54cab78df0375196aaec4e3109191653d21751df"},{"url":"https://git.kernel.org/stable/c/d5aa82da8f65562da996d184686db9d0ea718b91"},{"url":"https://git.kernel.org/stable/c/4385ddd654d90245eeb83b3cb539670ab5c85ba4"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:17:38.929Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}