CVE: CVE-2026-80694
Продукт: Linux Kernel
Дата публикации: 28.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,46%; процентиль 38,35%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере
mtk_eth_soc ядра Linux обнаружена ошибка передачи аргумента, приводящая к падению системы при активном режиме опроса контроллера. Уязвимость затрагивает системы с контроллерами Ethernet MediaTek и включённой опцией CONFIG_NET_POLL_CONTROLLER. Исправление уже внесено в стабильные ветки ядра.Основные характеристики
Ошибка в драйвере
mtk_eth_soc вызывает сбой ядра при обработке сетевых прерываний в режиме NAPI. Риск связан с потерей доступности, а не с удалённым выполнением кода.- 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,46% (процентиль 38,35%). Низкая вероятность эксплуатации в ближайшем будущем.
- Условия атаки: Требуется наличие драйвера
mtk_eth_socи включённая опцияCONFIG_NET_POLL_CONTROLLER.
- Эксплуатация: Публичные данные о подтверждённой эксплуатации в реальных атаках отсутствуют.
Какие продукты и версии затронуты
Затронуты версии Linux Kernel, содержащие драйвер
mtk_eth_soc с ошибкой в функции mtk_poll_controller. Ошибка была введена в коммите 8186f6e382d8 и исправлена в коммите e095f249e2209674f6366f6db0383a2b96e19239.- Компонент:
drivers/net/ethernet/mediatek/mtk_eth_soc.c
- Функция:
mtk_poll_controller
- Условие сборки:
CONFIG_NET_POLL_CONTROLLERдолжно быть включено.
- Платформы: Системы с контроллерами Ethernet MediaTek, поддерживаемыми данным драйвером.
Точный список затронутых версий ядра и дистрибутивов не указан в предоставленных источниках. Рекомендуется свериться с официальными уведомлениями поставщиков Linux.
Причина уязвимости
Причина ошибки — некорректная передача указателя в функцию обработки прерываний. Функция
mtk_handle_irq_rx ожидает аргумент типа struct mtk_eth *, соответствующий cookie, зарегистрированному через request_irq.В функции
mtk_poll_controller вместо этого передавался указатель net_device *. При вызове ndo_poll_controller с включённой опцией CONFIG_NET_POLL_CONTROLLER это приводило к несовпадению типов и последующему падению ядра.Исправление состоит в замене аргумента
dev на eth в вызове mtk_handle_irq_rx.Как работает атака
Атака эксплуатирует ошибку в обработке сетевых прерываний в режиме NAPI (Network API). Когда ядро переключается на опрос контроллера (polling) для обработки пакетов, вызывается
ndo_poll_controller.В уязвимой версии драйвера
mtk_poll_controller передаёт в mtk_handle_irq_rx указатель на net_device, а не на структуру драйвера mtk_eth. Это приводит к обращению к памяти по некорректному адресу, что вызывает сбой ядра.Механизм не предполагает удалённого выполнения кода, но приводит к немедленному падению системы (denial of service).
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо соблюдение следующих условий:
- Система использует драйвер
mtk_eth_socдля сетевого интерфейса.
- В конфигурации ядра включена опция
CONFIG_NET_POLL_CONTROLLER.
- Сетевой интерфейс, управляемый данным драйвером, активен и обрабатывает трафик.
- Система не обновлена до версии, содержащей коммит
e095f249e2209674f6366f6db0383a2b96e19239.
Возможный сценарий атаки
Атакующий направляет сетевой трафик на интерфейс, управляемый драйвером
mtk_eth_soc. При определённых условиях (например, высокая нагрузка или специфические флаги пакетов) ядро переключает обработку прерываний на режим опроса.Вызывается
ndo_poll_controller, который в уязвимой версии передаёт некорректный аргумент в mtk_handle_irq_rx. Это приводит к срабатыванию защиты ядра (page fault или similar) и падению системы.Результат — временная или постоянная недоступность сервиса, требующая перезагрузки.
Есть ли публичный эксплойт
Публичные данные о готовом эксплойте или подтверждённой эксплуатации в реальных атаках отсутствуют. В источниках представлены только коммиты с исправлением и описание ошибки.
- PoC: Не опубликован.
- Техническое описание: Доступно в коммитах ядра.
- Подтверждённая эксплуатация: Не зафиксирована в CISA KEV или других официальных источниках.
Отсутствие сведений об эксплуатации не означает, что уязвимость не может быть использована, но текущая вероятность атаки оценивается как низкая (EPSS 0,46%).
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости не опубликованы. Поскольку уязвимость приводит к падению ядра, а не к скрытной эксплуатации, основные признаки — это события сбоев системы.
- Неспецифичные признаки: Записи в
dmesgили системном журнале о kernel panic, oops или сбое в модулеmtk_eth_soc.
- Неспецифичные признаки: Внезапная потеря сетевого соединения и последующая перезагрузка системы.
Эти признаки не уникальны для CVE-2026-80694 и могут быть вызваны другими сбоями драйвера или оборудования.
Как обнаружить атаку
Обнаружение атаки или эксплуатации уязвимости сводится к мониторингу стабильности системы и журналов ядра.
- Мониторинг журналов: Анализ
dmesg,/var/log/kern.logилиjournalctlна наличие сообщений об ошибках в модулеmtk_eth_soc.
- Мониторинг сбоев: Отслеживание событий kernel panic или unexpected reboot.
- Проверка конфигурации: Убедиться, что
CONFIG_NET_POLL_CONTROLLERне включён, если драйверmtk_eth_socне используется или система не обновлена.
Специфичных сетевых сигнатур для обнаружения атаки не существует.
Как проверить свою версию
Для проверки версии ядра и наличия исправления используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Сравните полученную версию с официальными списками исправленных версий от вашего поставщика Linux. Коммит
e095f249e2209674f6366f6db0383a2b96e19239 является базовым для исправления. Если ваша версия ядра содержит этот коммит, уязвимость устранена.Также проверьте наличие модуля
mtk_eth_soc:
Bash:
lsmod | grep mtk_eth_soc
Если модуль не загружен, уязвимость не актуальна для текущей конфигурации.
Исправление
Единственный надёжный способ устранения уязвимости — обновление ядра до версии, содержащей исправление.
- Обновление ядра: Установите последнюю доступную версию ядра от вашего поставщика Linux, которая включает коммит
e095f249e2209674f6366f6db0383a2b96e19239.
- Перезагрузка: После обновления ядра выполните перезагрузку системы для применения изменений.
- Проверка: Убедитесь, что новая версия ядра активна и модуль
mtk_eth_socзагружен из обновлённых файлов.
Не используйте cherry-pick отдельных коммитов, если это не рекомендуется поставщиком, так как ядро тестируется как единое целое.
Временные меры защиты
Пока обновление ядра не выполнено, можно снизить риск эксплуатации:
- Отключение опции: Если возможно, пересоберите ядро без опции
CONFIG_NET_POLL_CONTROLLER. Это отключит режим опроса, в котором срабатывает ошибка.
- Отключение драйвера: Если интерфейс MediaTek не используется, отключите модуль
mtk_eth_socили отключите сетевой интерфейс.
- Ограничение трафика: Снизьте нагрузку на сетевой интерфейс, управляемый данным драйвером, чтобы уменьшить вероятность переключения в режим опроса.
Эти меры не устраняют уязвимость, но снижают вероятность её срабатывания.
Как проверить устранение уязвимости
После обновления ядра выполните следующие шаги для проверки:
- Проверьте версию ядра:
uname -r.
- Убедитесь, что версия соответствует исправленной.
- Проверьте наличие модуля:
lsmod | grep mtk_eth_soc.
- Проверьте логи на отсутствие ошибок:
dmesg | grep -i mtk_eth_soc.
Если ошибок нет и версия актуальна, уязвимость устранена.
Вывод
CVE-2026-80694 затрагивает драйвер
mtk_eth_soc и приводит к падению ядра при определённых условиях конфигурации. Публичные данные об активной эксплуатации отсутствуют, однако риск для систем с включённой опцией CONFIG_NET_POLL_CONTROLLER сохраняется.Рекомендуется обновить ядро до версии, содержащей исправление. Если обновление невозможно, рассмотрите отключение опции или драйвера. Регулярно проверяйте журналы ядра на признаки сбоев.
Официальные источники
- NVD — CVE-2026-80694
- FIRST EPSS — CVE-2026-80694
- net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 31.08.2026 — Опубликована первая версия материала.
