CVE-2026-80841 in LinuxИнформация

Сводка

по VulDB • 04.09.2026

В ядре Linux была устранена следующая уязвимость:

net/packet: отложить освобождение TX_RING через vmalloc до завершения обработки skbs

skb в AF_PACKET TX_RING сохраняют сырой указатель на кадр своего кольца. Ссылки на страницы skb обеспечивают сохранение блоков кольца, основанных на страницах (page-backed), после освобождения pg_vec, однако они не сохраняют отображение памяти, выделенное через vmalloc.

Функция tpacket_destruct_skb() в настоящее время сбрасывает ожидающую ссылку перед записью метки времени и значения TP_STATUS_AVAILABLE в кадр. Необходимо переместить операцию декремента после этих операций записи. Функция smp_wmb() в __packet_set_status() обеспечивает упорядочивание операций записи кадра до выполнения декремента.

Также необходимо повторно проверить ожидающие кадры TX под блокировкой pg_vec перед заменой кольца, не связанной с закрытием (non-closing ring replacement), чтобы избежать ситуации гонки (race condition), при которой отправляющий вызов может добавить ожидаемый skb между первоначальной проверкой и заменой кольца.

Выделение памяти для кольца может приводить к смешанному использованию блоков, основанных на страницах, и блоков, выделенных через vmalloc. Необходимо выделять хранилище для отложенной работы (deferred-work) при настройке TX-кольца в момент обнаружения первого блока, выделенного через vmalloc, и сохранять указатель на него в заголовке выделения pg_vec. Если выделение не удается, необходимо вернуть -ENOMEM из функции настройки кольца. При закрытии сокета ненулевой указатель идентифицирует вектор, основанный на vmalloc, без необходимости сканирования. Если остаются TX skbs, весь вектор должен быть отложен в system_long_wq.

После отделения pg_vec поздний деструктор может пропустить ожидающий декремент. В качестве механизма управления временем жизни для отложенных операций следует использовать учет памяти при записи сокета: skb остается учтенным до своего окончательного вызова sock_wfree(), после всех обращений к кадрам кольца. Отложенная работа сохраняет ссылку на сокет и планирует повторное выполнение, пока не останутся TX skbs.

Переместите освобождение pending_refcnt в packet_sock_destruct(), чтобы поздние деструкторы skb и отложенные операции очистки могли безопасно использовать его после packet_release(). Разбор структуры, основанной на страницах (page-backed), остается синхронным, а в горячий путь завершения TX не добавляется блокировка.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Ответственный

Linux

Резервировать

26.08.2026

Раскрытие

04.09.2026

Модерация

принято

Вход

VDB-398949

EPSS

0.00166

KEV

Нет

Деятельности

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!