Ad

CVE-2026-74584

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

В ядре Linux устранена следующая уязвимость: RDMA/bnxt_re: отсутствие общей страницы перед ее доступом в пространство пользователя. bnxt_re_alloc_ucontext() выделяет uctx->shpg через __get_free_page(GFP_KERNEL). Распределитель друзей не обнуляет страницы без __GFP_ZERO, поэтому страница содержит устаревшие данные ядра из какой бы объект последний раз его освободил. Затем страница сопоставляется с пользовательским пространством с помощью vm_insert_page() в разделе BNXT_RE_MMAP_SH_PAGE в bnxt_re_mmap().

Драйвер всегда пишет только 4 байта (AVID u32) по смещению BNXT_RE_AVID_OFFT (0x10) внутри bnxt_re_create_ah(); остальные 4092 байта страницы открыты. в пользовательское пространство неочищенным, с утечкой содержимого памяти ядра. Любой пользователь, имеющий доступ к /dev/infiniband/uverbsX на хосте с Устройство bnxt_re (обычно членство в группе rdma) может читать эти данные. через одиночный вызов mmap() в pgoff 0 после IB_USER_VERBS_CMD_GET_CONTEXT. Другие общие страницы в том же файле уже используют get_zeroed_page(). правильно: драйверы/infiniband/hw/bnxt_re/ib_verbs.c srq->uctx_srq_page = (void *)get_zeroed_page(GFP_KERNEL); cq->uctx_cq_page = (void *)get_zeroed_page(GFP_KERNEL); uctx->shpg — единственный выброс.

Приведите его в соответствие с существующим соглашение, переключившись на get_zeroed_page().

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

In the Linux kernel, the following vulnerability has been resolved: RDMA/bnxt_re: zero shared page before exposing to userspace bnxt_re_alloc_ucontext() allocates uctx->shpg via __get_free_page(GFP_KERNEL). The buddy allocator does not zero pages without __GFP_ZERO, so the page contains stale kernel data from whatever object most recently freed it. The page is then mapped into userspace via vm_insert_page() under BNXT_RE_MMAP_SH_PAGE in bnxt_re_mmap(). The driver only ever writes 4 bytes (a u32 AVID) at offset BNXT_RE_AVID_OFFT (0x10) inside bnxt_re_create_ah(); the remaining 4092 bytes of the page are exposed to userspace unsanitised, leaking kernel memory contents. Any user with access to /dev/infiniband/uverbsX on a host with a bnxt_re device (typically rdma group membership) can read this data via a single mmap() at pgoff 0 after IB_USER_VERBS_CMD_GET_CONTEXT. Other shared pages in the same file already use get_zeroed_page() correctly: drivers/infiniband/hw/bnxt_re/ib_verbs.c srq->uctx_srq_page = (void *)get_zeroed_page(GFP_KERNEL); cq->uctx_cq_page = (void *)get_zeroed_page(GFP_KERNEL); uctx->shpg is the only outlier. Bring it in line with the existing convention by switching to get_zeroed_page().

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

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

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Нет
Нет модификации данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v3.1