В ядре Linux устранена следующая уязвимость: veth: уменьшить XDP no_direct возврат секцию, чтобы исправить расу Как объяснить в commit fa34…
В ядре Linux устранена следующая уязвимость: veth: уменьшить XDP no_direct возврат секцию, чтобы исправить расу Как объяснить в commit fa349e396e48 («veth: Fix race с AF_XDP разоблачением старые или неинициализированные дескрипторы") для veth есть шанс после napi_complete_done(), что другой ЦП может управлять запуском другого NAPI экземпляр запуска veth_pool(). Для NAPI это правильно обрабатывается как napi_schedule_prep() проверка предотвратит получение нескольких экземпляров расписанный, но для оставшегося кода в veth_pool() это может запустить одновременно с недавно начатым экземпляром NAPI. Проблема/гонка в том, что xdp_clear_return_frame_no_direct() предназначен для гнездования. Перед совершением 401cb7dae813 ("нетто: Справка bpf_redirect_info через task_struct on PREEMPT_RT.") временный сетевой контекст BPF bpf_redirect_info хранился в CPU, где это не было проблемой. С тех пор это обязательство контекста BPF хранится в 'current' task_struct. Когда run run veth в режиме threaded-NAPI, затем kthread становится хранилищем область. Теперь существует раса между двумя параллельными вызовами veth_pool() один выход из NAPI и один работает новый NAPI, оба с использованием одной и той же сети BPF Контекст. Гонка - это когда другой процессор попадает в xdp_set_return_frame_no_direct() раздел перед выходом veth_pool() вызывает четкий-функцию xdp_clear_return_return_frame_no_direct().
| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws-5.19 | Отслеживается | |
| linux-aws-6.2 | Отслеживается | |
| linux-aws-6.5 | Отслеживается | |
| linux-azure-5.19 | Отслеживается | |
| linux-azure-6.11 | Отслеживается | |
| linux-azure-6.2 | Отслеживается | |
| linux-azure-6.5 | Отслеживается | |
| linux-azure-fde-5.19 | Отслеживается | |
| linux-azure-fde-6.2 | Отслеживается | |
| linux-gcp-5.19 | Отслеживается | |
| linux-gcp-6.11 | Отслеживается | |
| linux-gcp-6.2 | Отслеживается | |
| linux-gcp-6.5 | Отслеживается | |
| linux-hwe-5.19 | Отслеживается | |
| linux-hwe-6.11 | Отслеживается |