CVE: CVE-2026-80634
Продукт: Linux Kernel
Дата публикации: 28.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,38%; процентиль 30,89%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В Linux Kernel обнаружена уязвимость в модуле netfilter flowtable, связанная с некорректной обработкой VLAN-разметки в мостовых интерфейсах. Ошибка приводит к выходу за границы стека (OOB read) и копированию невалидных данных в дескриптор маршрута. Статья разбирает механику дефекта, условия срабатывания и методы проверки исправления.
Основные характеристики
Риск связан с нарушением целостности данных в сетевом стеке при обработке некорректных мостовых путей, что может привести к утечке информации или сбою маршрутизации.
- Тип ошибки: Ошибка обработки данных (OOB read) в функции
nft_dev_forward_path().
- CVSS 3.1: 9.8 (CRITICAL), вектор
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Условия атаки: Сетевой доступ, отсутствие необходимости в аутентификации и пользовательском взаимодействии.
- Эксплуатация: Публичные данные о реальной эксплуатации отсутствуют.
- EPSS: 0,38% (процентиль 30,89%), что указывает на низкую вероятность эксплуатации в ближайший год.
Какие продукты и версии затронуты
Уязвимость затрагивает ядра Linux, содержащие код обработки VLAN в netfilter flowtable. Точный диапазон версий определяется наличием исходного коммита
e990cef6516d и отсутствием исправления.- Компонент:
net/netfilter/nf_flow_table_path.c.
- Исходный коммит:
e990cef6516d(добавление поддержки фильтрации VLAN в мостах).
- Исправляющие коммиты:
e052f920773b73be49eb4d8702a9f85de7464363(mainline) и2f55fa28011c97d6495d5787808db10a8c2d690d(stable).
Причина уязвимости
Причина дефекта кроется в некорректном порядке операций при обработке случая
DEV_PATH_BR_VLAN_UNTAG в функции nft_dev_path_info().В исходном коде операция декремента
info->num_encaps выполнялась внутри макроса WARN_ON_ONCE(). Поскольку num_encaps имеет тип u8, при значении 0 декремент приводит к переполнению (wrap-around) в 255. Макрос break прерывает только внутренний switch, позволяя дальнейшим записям стека пути восстановить info->indev.В результате функция возвращает значение
num_encaps == 255, хотя фактическое количество инкапсуляций равно нулю. Это нарушает инвариант безопасности, согласно которому счетчик не должен превышать размер массива info.encap[] (размер 2).Как работает атака
Атака эксплуатирует несогласованность между счетчиком инкапсуляций и фактическим состоянием стека путей.
- Атакующий формирует пакет, проходящий через мостовой интерфейс с некорректной VLAN-разметкой, что приводит к срабатыванию ветки
DEV_PATH_BR_VLAN_UNTAGприnum_encaps == 0.
- Из-за переполнения
num_encapsпринимает значение 255.
- Функция
nft_dev_forward_path()начинает итерацию по массивуinfo.encap[](размер 2) до значенияnum_encaps(255).
- Происходит чтение за границами стека (OOB stack read).
- Некорректное значение 255 копируется в дескриптор маршрута, что может привести к обработке невалидных данных или утечке информации из стека.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо выполнение следующих условий:
- Наличие в ядре модуля
nf_flow_tableи поддержки VLAN в мостовых интерфейсах.
- Возможность доставки специально сформированных сетевых пакетов через мостовой интерфейс.
- Отсутствие исправляющего коммита
e052f920773b73be49eb4d8702a9f85de7464363в текущей версии ядра.
- Отсутствие дополнительных механизмов защиты, блокирующих некорректные VLAN-метки на уровне моста.
Возможный сценарий атаки
Сценарий атаки предполагает сетевое взаимодействие с хостом, использующим мостовые интерфейсы с VLAN-фильтрацией.
Атакующий отправляет пакет, который при обработке в netfilter flowtable попадает в ветку
DEV_PATH_BR_VLAN_UNTAG в момент, когда счетчик инкапсуляций равен нулю. Это вызывает переполнение счетчика в 255. Далее, при формировании маршрута, ядро пытается прочитать 255 элементов из массива, содержащего только 2 элемента.В результате происходит чтение памяти за пределами стека. Зависит от контекста, это может привести к утечке данных из стека ядра или к некорректному формированию маршрута, что может быть использовано для обхода сетевых политик или для сбора информации о состоянии системы.
Есть ли публичный эксплойт
На момент публикации сведений о CVE-2026-80634 публичные эксплойты или PoC-коды не обнаружены в открытых источниках.
- PoC: Отсутствуют подтвержденные публичные PoC.
- Техническое описание: Доступно в коммитах исправления.
- Эксплуатация: Нет данных о подтвержденной эксплуатации в реальных атаках.
Отсутствие публичного эксплойта не означает, что уязвимость не может быть эксплуатирована. Учитывая высокий CVSS-скор, разработку эксплойта следует считать вероятной.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-80634 не опубликованы. Ниже приведены общие, неспецифичные точки контроля:
- Аномальные записи в журналах ядра (dmesg) с упоминанием
WARN_ON_ONCEв контексте netfilter.
- Необычные сетевые потоки через мостовые интерфейсы с некорректными VLAN-метками.
- Сбои в маршрутизации или некорректные дескрипторы маршрутов в сетевых утилитах.
Эти признаки не являются уникальными для данной уязвимости и требуют дополнительной верификации.
Как обнаружить атаку
Обнаружение атаки затруднено из-за отсутствия специфичных сигнатур. Рекомендуется использовать следующие методы:
- Мониторинг журналов ядра на наличие предупреждений, связанных с
nf_flow_table.
- Анализ сетевых пакетов на предмет некорректных VLAN-меток в мостовых интерфейсах.
- Проверка целостности дескрипторов маршрутов с помощью сетевых утилит.
- Использование eBPF-программ для отслеживания аномального поведения в netfilter flowtable.
Как проверить свою версию
Для проверки версии ядра и наличия исправления используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Затем сверьте версию ядра с наличием коммита
e052f920773b73be49eb4d8702a9f85de7464363 в истории изменений. Если коммит отсутствует, система уязвима.Исправление
Единственным надежным способом устранения уязвимости является обновление ядра до версии, содержащей исправляющий коммит.
- Mainline: Коммит
e052f920773b73be49eb4d8702a9f85de7464363.
- Stable: Коммит
2f55fa28011c97d6495d5787808db10a8c2d690d.
Обновите ядро через пакетный менеджер вашей дистрибутива или соберите ядро из исходников, убедившись, что исправление включено.
Временные меры защиты
До обновления ядра можно применить следующие временные меры:
- Отключите поддержку VLAN в мостовых интерфейсах, если это не критично для работы сети.
- Ограничьте доступ к мостовым интерфейсам, используя firewall-правила.
- Отключите модуль
nf_flow_table, если он не используется.
- Убедитесь, что мостовые интерфейсы не обрабатывают некорректные VLAN-метки на уровне пользовательского пространства.
Как проверить устранение уязвимости
Для проверки успешного применения исправления выполните следующие шаги:
- Убедитесь, что версия ядра содержит коммит
e052f920773b73be49eb4d8702a9f85de7464363.
- Проверьте, что функция
nft_dev_path_info()в исходниках ядра содержит исправленную логику (декремент внеWARN_ON_ONCE).
- Проведите функциональное тестирование мостовых интерфейсов с VLAN-фильтрацией.
- Убедитесь, что в журналах ядра отсутствуют предупреждения, связанные с
nf_flow_table.
Вывод
CVE-2026-80634 представляет собой серьезную уязвимость в Linux Kernel, связанную с некорректной обработкой VLAN в netfilter flowtable. Высокий CVSS-скор и сетевой вектор атаки делают ее приоритетной для устранения. Рекомендуется незамедлительно обновить ядро до версии, содержащей исправление, и применить временные меры защиты до завершения обновления.
Официальные источники
- NVD — CVE-2026-80634
- FIRST EPSS — CVE-2026-80634
- netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag - kernel/git/stable/linux.git - Linux kernel stable tree
- netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 01.09.2026 — Опубликована первая версия материала.
