CVE Catalog

CVE-2026-74390

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.13%

3th percentile - higher than 3% of all known CVEs

Summary

In the Linux kernel, the irdma_copy_user_pgaddrs function has an out-of-bounds write vulnerability. The issue occurs when palloc->total_cnt is zero, causing the loop to potentially go beyond the fixed size of the pgaddrmem array (4 elements) in the lvl==0 case. This can lead to buffer overflow.

Risk Assessment

An attacker could trigger an out-of-bounds write, potentially causing system crash or arbitrary code execution in kernel context.

Recommendation

Apply the kernel patch that adds explicit checks to prevent overflow of the pgaddrmem array. Update the system to a kernel version containing this fix.

Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS