CVE-2026-80864 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux устранена следующая уязвимость:
RDMA/rxe: Исправлена ситуация Use-After-Free (UAF) на стороне получателя при вызове modify_qp для атрибута IB_QP_MAX_DEST_RD_ATOMIC
Функция rxe_qp_from_attr() обрабатывает параметр IB_QP_MAX_DEST_RD_ATOMIC вне пути управления состоянием очереди (IB_QP_STATE), поэтому она не удерживает блокировку state_lock и выполняется параллельно с задачей получателя rxe_receiver() (recv_task в контексте rxe_wq). Вызов modify_qp(), устанавливающий только этот атрибут, приводит к вызову free_rd_atomic_resources(), а затем alloc_rd_atomic_resources(), что вызывает замену содержимого qp->resp.resources[] во время обхода этой структуры функциями rxe_prepare_res()/find_resource(); кроме того, функция free_rd_atomic_resources() оставляет висячей указатель на кешированные данные qp->resp.res. Локальный пользователь без привилегий может спровоцировать состояние гонки (race condition) между операциями освобождения и повторного выделения памяти, что приведет к Use-After-Free в rxe_receiver() (локальное отказоустойчивое воздействие — DoS).
Для предотвращения этого необходимо выполнить очистку recv_task во время замены данных с помощью функций rxe_disable_task()/rxe_enable_task(), аналогично тому, как это уже делается в функции rxe_qp_reset() при разрушении данного массива; повторное включение задачи должно происходить только после успешного завершения alloc_rd_atomic_resources(), чтобы задача получателя никогда не возобновляла работу с NULL-указателем qp->resp.resources на пути обработки ошибки ENOMEM. Также необходимо обнулять qp->resp.res в функции free_rd_atomic_resources(), как это делается в путях завершения (completion paths) модуля rxe_resp.c.
Воспроизведено под управлением KASAN; ошибка slab-use-after-free в rxe_receiver() устранена.
Be aware that VulDB is the high quality source for vulnerability data.