RDMA/irdma: Fix out-of-bounds write in irdma_copy_user_pgaddrs (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.13 % · percentile 3 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Received
Description
In the Linux kernel, the following vulnerability has been resolved: RDMA/irdma: Fix out-of-bounds write in irdma_copy_user_pgaddrs The irdma_copy_user_pgaddrs function loops through all of the umem DMA blocks to populate the PBLEs and will stop when either the last DMA block is reached or palloc->total_cnt is reached. The issue is that the logic for checking palloc->total_cnt would only work for non-zero values. When irdma_setup_pbles is called with lvl==0, it calls irdma_copy_user_pgaddrs with palloc->total_cnt==0, which means the only way to break out of the loop is to reach the last umem DMA block, which means it could end up going beyond the fixed size of 4 iwmr->pgaddrmem array that is used in the lvl==0 case. In the case of QP/CQ/SRQ rings, the value of lvl is determined by a separate input (for example, req.cq_pages in the case of a CQ). So, we must perform explicit checking to ensure we don't overflow the pgaddrmem array if the user provides a umem that consists of more blocks than their provided req.cq_pages.
References
- https://git.kernel.org/stable/c/4780f58672ee6328accd54a95f9c00683477e499
- https://git.kernel.org/stable/c/79a20a8e201a779224b4bf115250a7713bde72c0
- https://git.kernel.org/stable/c/9f8f0d2099e3de1194e37dc933ae0c4206b09aaf
- https://git.kernel.org/stable/c/192a3be0e3759daa24af2841208b074ca6dbaabc
- https://git.kernel.org/stable/c/424d51d33c7541a86934067c2c0538124687fc90
- https://git.kernel.org/stable/c/abd27a977b419d584efa659488c22d2306987b29
- https://git.kernel.org/stable/c/5ebb3ed757be3e04cf803026004aa0beaeb13e9b
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | Linux |
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | NVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary) |
European references
- ENISA EUVD · EUVD-2026-59537
- GCVE · GCVE-0-2026-74390
CERT-FR advisories
- CERTFR-2026-AVI-1385 — Multiples vulnérabilités dans les produits VMware · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1372 — Multiples vulnérabilités dans les produits SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1335 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1333 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1288 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1286 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1255 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1231 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected b48c24c2d710cf34810c555dcef883a3d35a9c08 < 4780f58672ee6328accd54a95f9c00683477e499 ; affected b48c24c2d710cf34810c555dcef883a3d35a9c08 < 79a20a8e201a779224b4bf115250a7713bde72c0 ; affected b48c24c2d710cf34810c555dcef883a3d35a9c08 < 9f8f0d2099e3de1194e37dc933ae0c4206b09aaf ; affected b48c24c2d710cf34810c555dcef883a3d35a9c08 < 192a3be0e3759daa24af2841208b074ca6dbaabc ; affected b48c24c2d710cf34810c555dcef883a3d35a9c08 < 424d51d33c7541a86934067c2c0538124687fc90 ; affected b48c24c2d710cf34810c555dcef883a3d35a9c08 < abd27a977b419d584efa659488c22d2306987b29 |
| Linux · Linux | affected 5.14 ; unaffected 0 < 5.14 ; unaffected 5.15.212 ≤ 5.15.* ; unaffected 6.1.178 ≤ 6.1.* ; unaffected 6.6.145 ≤ 6.6.* ; unaffected 6.12.97 ≤ 6.12.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |