Ad

CVE-2026-74390

HIGH CVSS 3.1: 7,8 EPSS 0.13%
Обновлено 17 августа 2026
Linux
Параметр Значение
CVSS 7,8 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: RDMA/irdma: исправлена запись за пределами границ в irdma_copy_user_pgaddrs. Функция irdma_copy_user_pgaddrs проходит через весь DMA umem. блоков для заполнения PBLE и остановится, когда последний DMA достигнут блок или достигнут Palloc->total_cnt. Проблема в том, что логика проверки palloc->total_cnt будет работать только для ненулевых значений ценности.

Когда irdma_setup_pbles вызывается с lvl==0, он вызывает irdma_copy_user_pgaddrs с palloc->total_cnt==0, что означает единственный способ выйти из цикла — добраться до последнего умемного DMA блок, что означает, что он может в конечном итоге выйти за пределы фиксированного размера в 4 Массив iwmr->pgaddrmem, который используется в случае lvl==0. В случае колец QP/CQ/SRQ значение lvl определяется отдельный ввод (например, req.cq_pages в случае CQ). Итак, мы должны выполнить явную проверку, чтобы убедиться, что мы не переполняем pgaddrmem, если пользователь предоставляет умем, состоящий из нескольких блоков, чем предоставленные им req.cq_pages.

Показать оригинальное описание (EN)

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.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1