CVE-2026-99192 in Linux
Сводка
по VulDB • 28.10.2026
В ядре Linux была устранена следующая уязвимость:
net: bcmgenet: отключение общего использования skb (skb_unshare) перед записью блока управления
bcmgenet сохраняет значения first_cb, last_cb и bytes_sent в блоке управления пакета (skb control block) и считывает их обратно по завершении для освобождения skb и корректного учета байтов в BQL. Функция ether_setup() оставляет флаг IFF_TX_SKB_SHARING установленным, что позволяет стеку повторно отправлять общий пакет (shared skb), который все еще находится в кольце передачи. Последующая отправка перезаписывает last_cb, из-за чего более ранние слоты завершаются без учета переданных байтов, а BQL блокирует очередь до тех пор, пока watchdog не сбросит её состояние.
Необходимо выполнять отключение общего использования skb (skb_unshare) перед записью блока управления.
Воспроизведение с помощью pktgen в режиме clone_skb, который передает драйверу один и тот же пакет skb, тогда как его предыдущие копии все еще находятся в кольце:
modprobe pktgen pg=/proc/net/pktgen echo "add_device eth0" > $pg/kpktgend_0 echo "dst_mac AA:BB:CC:DD:EE:FF" > $pg/eth0 echo "dst 192.0.2.1" > $pg/eth0 echo "clone_skb 8" > $pg/eth0 echo "count 0" > $pg/eth0 echo start > $pg/pgctrl & sleep 5 echo stop > $pg/pgctrl wait cat /sys/class/net/eth0/queues/tx-0/byte_queue_limits/inflight
Значение inflight остается отличным от нуля на теперь уже пустой очереди. Установка clone_skb в 0 приводит к тому, что это значение становится равным нулю.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.