CVE-2026-80694 в Linux Kernel: сбой драйвера mtk_eth_soc при обработке прерываний

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 или отключите сетевой интерфейс.
  • Ограничение трафика: Снизьте нагрузку на сетевой интерфейс, управляемый данным драйвером, чтобы уменьшить вероятность переключения в режим опроса.

Эти меры не устраняют уязвимость, но снижают вероятность её срабатывания.

Как проверить устранение уязвимости​


После обновления ядра выполните следующие шаги для проверки:

  1. Проверьте версию ядра: uname -r.
  2. Убедитесь, что версия соответствует исправленной.
  3. Проверьте наличие модуля: lsmod | grep mtk_eth_soc.
  4. Проверьте логи на отсутствие ошибок: dmesg | grep -i mtk_eth_soc.

Если ошибок нет и версия актуальна, уязвимость устранена.

Вывод​


CVE-2026-80694 затрагивает драйвер mtk_eth_soc и приводит к падению ядра при определённых условиях конфигурации. Публичные данные об активной эксплуатации отсутствуют, однако риск для систем с включённой опцией CONFIG_NET_POLL_CONTROLLER сохраняется.

Рекомендуется обновить ядро до версии, содержащей исправление. Если обновление невозможно, рассмотрите отключение опции или драйвера. Регулярно проверяйте журналы ядра на признаки сбоев.

Официальные источники​


  1. NVD — CVE-2026-80694
  2. FIRST EPSS — CVE-2026-80694
  3. net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
  4. net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
  5. net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
  6. net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller - kernel/git/stable/linux.git - Linux kernel stable tree
  7. CVEs — The Linux Kernel documentation

История обновлений статьи​


  • 31.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ