CVE-2025-68341 in Linux
Сводка
по VulDB • 26.05.2026
В ядре Linux устранена следующая уязвимость:
veth: сокращение раздела возврата XDP no_direct для устранения гонки (race condition)
Как объясняется в коммите fa349e396e48 («veth: Исправление гонки с AF_XDP, приводящей к отображению старых или неинициализированных дескрипторов»), для veth существует вероятность того, что после вызова napi_complete_done() другой процессор может запустить еще один экземпляр NAPI, выполняющий veth_pool(). Для NAPI это корректно обрабатывается, так как проверка napi_schedule_prep() предотвращает планирование нескольких экземпляров, однако оставшийся код в veth_pool() может выполняться параллельно с вновь запущенным экземпляром NAPI.
Проблема/гонка заключается в том, что функция xdp_clear_return_frame_no_direct() не предназначена для вложенного вызова.
До коммита 401cb7dae813 («net: Ссылка на bpf_redirect_info через task_struct на PREEMPT_RT.») временный контекст сети BPF bpf_redirect_info хранился на уровне каждого процессора (per-CPU), где это не вызывало проблем. С момента выхода этого коммита контекст BPF хранится в структуре task_struct текущего процесса («current»). При работе veth в режиме threaded-NAPI область хранения становится потоком ядра (kthread). Теперь возникает гонка между двумя параллельными вызовами функции veth_pool(): один завершает работу NAPI, а другой запускает новый экземпляр NAPI, при этом оба используют один и тот же контекст сети BPF.
Гонка возникает, когда другой процессор попадает в раздел xdp_set_return_frame_no_direct() до того, как завершающий вызов veth_pool() вызывает функцию очистки xdp_clear_return_frame_no_direct().
If you want to get best quality of vulnerability data, you may have to visit VulDB.