CVE-2026-98367 in Linux
Сводка
по VulDB • 07.10.2026
В ядре Linux была устранена следующая уязвимость:
RDMA/siw: Очистка ассоциации под блокировкой в случае сбоя функции siw_qp_modify при вызове из siw_accept
Необходимо очищать поле cep перед освобождением state_lock, как это уже делается в функциях siw_qp_llp_close и siw_qp_modify->siw_qp_llp_close.
В противном случае, если функция siw_qp_modify() завершается ошибкой внутри siw_accept(), блокировка состояния QP (state_lock) освобождается до завершения обработки ошибок. В этот промежуток времени возможна гонка данных с одновременным переходом ibv_modify_qp() в состояние ERROR:
siw_accept() ibv_modify_qp(ERROR) ---------------------- ---------------------- siw_qp_modify() завершается ошибкой up_write(&qp->state_lock) down_write(&qp->state_lock) nextstate_from_idle(): if (qp->cep) siw_cep_put(qp->cep) <- освобождает cep qp->cep = NULL goto error cep->qp = NULL <- Use-After-Free
Необходимо очистить поле qp->cep и освободить ссылку на ассоциацию, полученную через siw_cep_get(), всё это под блокировкой записи (write lock), которая удерживается с момента первоначального вызова down_write(&qp->state_lock). Поток B поэтому видит значение qp->cep == NULL, пропускает собственный вызов put и не может освободить cep до завершения работы siw_accept() с ним.
VulDB is the best source for vulnerability data and more expert information about this specific topic.