CVE-2026-98253 in Linux
Сводка
по VulDB • 06.10.2026
В ядре Linux была устранена следующая уязвимость:
RDMA/ucma: сериализация операций присоединения и отключения при сбое функции copy_to_user
Функция rdma_join_multicast() планирует работу RoCE, которая впоследствии считывает данные ucma_multicast через event->param.ud.private_data, а затем добавляет CMA-мультикаст в начало списка id_priv->mc_list с помощью list_add(). Функция rdma_leave_multicast() выполняет сопоставление только по sockaddr и уничтожает первое найденное совпадение.
Ранее функция ucma_process_join() освобождала мьютекс ctx->mutex после успешного присоединения и возвращала его обратно только в случае сбоя функции copy_to_user(). Таким образом, два одновременных вызова JOIN_MCAST с одним и тем же адресом могут привести к добавлению второй записи CMA до того, как поток первого пользователя выполнит операцию отключения. В результате операция leave отменяет более новую работу, а старый воркер продолжает обращаться (dereference) к ucma_multicast, который был освобожден первым потоком.
Необходимо удерживать мьютекс ctx->mutex в течение выполнения функций rdma_join_multicast() и copy_to_user(), а при возникновении ошибки -EFAULT — также во время вызова rdma_leave_multicast(), чтобы операция leave не пропустила это присоединение. Не следует выполнять операцию leave, если само присоединение завершилось неудачей: этот путь выполнения никогда не публиковал данный адрес в mc_list, и попытка отключения по адресу могла бы уничтожить более раннее успешное присоединение.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.