V
Сканер-ВС
ГлавнаяКаталогИсточникиCWECAPECATT&CKМеры защитыПродуктыВендорыДокументация
CVE-2025-68232
DEB
Отсутствует

В ядре Linux устранена следующая уязвимость: veth: более надежная рукопись гонки, чтобы не txq застрять Совершить dc82a33297fc ("veth: прим…

CVSS
0.0
Отсутствует
EPSS
0.00
p5
Опубликовано
2025-01-01
Обновлено
2025-01-01
Описание

В ядре Linux устранена следующая уязвимость: veth: более надежная рукопись гонки, чтобы не txq застрять Совершить dc82a33297fc ("veth: применить диск диска backpressure на fullpr_ring к уменьшить TX капли") ввели гоночный условный, который может привести к постоянному Застопорился TXQ. Это наблюдалось в производстве на системах ARM64 (Ampere Altra) Макс). Гонка происходит в veth_xmit(). Производитель наблюдает полный ptr_ring и останавливает очередь (netif_tx_stop_queue()). Последующая условная логика, предназначен для повторного пробуждения очереди, если потребитель только что очистил ее (если (__ptr_ring_empty(...)) netif_tx_wake_queue()), может потерпеть неудачу. Это приводит к "потерянное пробуждение", где остановлено TXQ (QUEUE_STATE_DRV_XOFF) и Движение останавливается. Этот сбой вызван неправильным использованием API __ptr_ring_empty() Со стороны производителя. Как отмечается в комментариях ядра, эта проверка не гарантированно правильно, если потребитель работает на другом процессоре. пустой тест основан на ptr_ring->consumer_head, что делает его надежным только для Потребитель. Использование этого чека со стороны производителя в корне является пикантным. Этот патч исправляет гонку, принимая более надежную логику из более раннего версия V4 патсета, которая всегда смывала сверток: (1) В veth_xmit(), логика условного пробуждения и ее барьер памяти Они удалены. Вместо этого, остановив очередь, мы безоговорочно звоним __veth_xdp_flush(rq). Это гарантирует, что потребитель NAPI будет запланирован, сделать его исключительно ответственным за повторное пробуждение TXQ. Это обрабатывает гонку, где veth_poll() потребляет все пакеты и завершает NAPI * раньше* veth_xmit() на стороне производителя называл netif_tx_stop_queue. На сайте __veth_xdp_flush(rq) будет наблюдать rx_notify_masked is false и расписание НАПИ. (2) С потребительской стороны, логика для пробуждения однорангового TXQ перемещается из veth_xdp_rcv() и размещен в конце функции veth_poll(). Это размещение является частью фиксации гонки, как проверка netif_tx_queue_stopped() должен произойти после rx_notify_masked потенциально установлен на ложный во время NAPI завершение. Это обрабатывает гонку, где veth_poll() потребляет все пакеты, но не законченный (rx_notify_masked по-прежнему верно). Производитель veth_xmit() останавливает TXQ и __veth_dp_xfsh(rq) будут наблюдать rx_notify_masked истинно, значение Не запускает NAPI. Затем veth_poll() изменить rx_notify_masked на false and останавливает NAPI. Перед выходом veth_poll() будет наблюдать, что TXQ остановлен и проснется Вверх.

Затронутые продукты
LinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinux-allwinner-5.19Linux-awsLinux-awsLinux-awsLinux-awsLinux-awsLinux-awsLinux-aws
Хронология
2025-01-01
Опубликована
2025-01-01
Обновлена
Индикаторы эксплуатации
EPSS
0.002 · p5
Известна эксплуатация (KEV)
Нет
Проверки Сканер-ВС
Проверок Сканер-ВС для этой уязвимости в базе пока нет.
Затронутые продукты
ПродуктВендорСтатус
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linuxОтслеживается
linux-allwinner-5.19Отслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
linux-awsОтслеживается
Показаны первые 20 из 220