CVE-2026-80617 в Linux Kernel: heap overflow в драйвере airoha

CVE: CVE-2026-80617
Продукт: Linux Kernel
Дата публикации: 28.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,50%; процентиль 40,46%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В драйвере сетевого оборудования airoha обнаружена ошибка вычисления размера буфера, приводящая к записи за пределы выделенной памяти. Проблема затрагивает ядра Linux, использующие данный драйвер, и может привести к падению системы. Ниже описаны технические детали, условия риска и порядок проверки исправления.

Основные характеристики​


Уязвимость представляет собой классическую ошибку вычисления размера выделенного буфера в ядре Linux. При определенных условиях драйвер записывает данные за пределы выделенной области памяти, что может привести к повреждению данных и падению системы.

  • Тип ошибки: Heap Buffer Overflow (запись за пределы выделенного буфера).
  • 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,50% (процентиль 40,46%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но не нулевая.
  • Статус: Подтверждено исправление в стабильных ветках ядра. Эксплуатация в реальных атаках не подтверждена.

Какие продукты и версии затронуты​


Проблема затрагивает ядра Linux, в которых включен драйвер airoha для сетевого оборудования.

  • Компонент: drivers/net/ethernet/airoha/airoha_ppe.c.
  • Версии: Конкретные номера версий ядра, в которых присутствует уязвимость, не указаны в предоставленных источниках. Известно, что исправление было внесено в стабильные ветки (stable tree) в июле 2026 года.
  • Условие риска: Система должна использовать сетевое оборудование, поддерживаемое драйвером airoha, и иметь активный PPE (Packet Processing Engine) с функцией FOE (Flow Offload Engine).

Причина уязвимости​


Причина уязвимости кроется в некорректном вычислении размера памяти при выделении буфера foe_check_time.

Переменная foe_check_time объявлена как указатель на тип u16 (16-битное целое). Однако при выделении памяти через devm_kzalloc в качестве размера передавалось значение ppe_num_entries (количество записей), а не ppe_num_entries * sizeof(u16).

В результате выделенный буфер оказывается вдвое меньше, чем требуется для хранения данных. Когда функция airoha_ppe_foe_verify_entry() вызывается с параметром hash, равным или превышающим ppe_num_entries/2, происходит запись за пределы выделенной области памяти (heap buffer overflow).

Как работает атака​


Атака эксплуатирует ошибку в функции airoha_ppe_foe_verify_entry() драйвера airoha.

  1. Триггер: Функция вызывается с параметром hash, значение которого превышает половину размера таблицы (ppe_num_entries/2).
  2. Путь данных: Значение hash используется как индекс для записи в массив foe_check_time. Поскольку буфер был выделен с недостаточным размером, запись по индексу выходит за его пределы.
  3. Последствие: Происходит повреждение памяти, расположенной после буфера foe_check_time. Это может привести к повреждению критических структур ядра, что вызывает панику ядра (kernel panic) и остановку системы.

Сетевой вектор атаки (AV:N) предполагает, что атакующий может отправить специально сформированные пакеты, которые приведут к вызову уязвимой функции с некорректным значением hash.

Условия успешной эксплуатации​


Для успешной эксплуатации уязвимости должны быть выполнены следующие условия:

  • Наличие оборудования: Система должна использовать сетевое оборудование, поддерживаемое драйвером airoha.
  • Активность драйвера: Драйвер airoha должен быть загружен и активен.
  • Поддержка PPE/FOE: Оборудование должно поддерживать функции PPE (Packet Processing Engine) и FOE (Flow Offload Engine).
  • Сетевой доступ: Атакующий должен иметь сетевой доступ к системе, чтобы отправить пакеты, триггерящие уязвимость.
  • Отсутствие исправления: Ядро должно быть скомпилировано без исправления, устраняющего ошибку вычисления размера буфера.

Возможный сценарий атаки​


Атакующий с сетевым доступом к системе, использующей оборудование airoha, отправляет специально сформированные сетевые пакеты.

Эти пакеты обрабатываются драйвером airoha, который вызывает функцию airoha_ppe_foe_verify_entry() с параметром hash, превышающим ppe_num_entries/2. В результате происходит запись за пределы выделенного буфера foe_check_time, что приводит к повреждению памяти и потенциальному падению системы (DoS).

В худшем случае, если поврежденная память содержит критические структуры ядра, атакующий может попытаться добиться выполнения кода с привилегиями ядра, хотя для этого требуется точное управление содержимым поврежденной области.

Есть ли публичный эксплойт​


Публичные эксплойты для CVE-2026-80617 не подтверждены.

  • PoC: Публично доступных Proof of Concept (PoC) в предоставленных источниках не обнаружено.
  • Эксплуатация: Свидетельств успешной эксплуатации в реальных атаках (in-the-wild) не зафиксировано.
  • Техническое описание: Доступны технические описания уязвимости и патчи, позволяющие разработать эксплойт, но готовых рабочих инструментов атаки в открытых источниках нет.

Отсутствие публичных эксплойтов не означает, что уязвимость не может быть эксплуатирована. При наличии доступа к оборудованию airoha и понимании механики драйвера атакующий может разработать собственный эксплойт.

Признаки эксплуатации​


Специфичные индикаторы компрометации (IOC) для CVE-2026-80617 не определены.

Поскольку уязвимость приводит к падению системы (DoS) или потенциальному выполнению кода, специфичных сетевых сигнатур или артефактов в логах, однозначно указывающих на эксплуатацию именно этой уязвимости, нет.

Общие признаки, которые могут свидетельствовать о попытке атаки (неспецифичные):

  • Внезапные падения ядра (kernel panic) на системах с оборудованием airoha.
  • Необъяснимые ошибки в логах драйвера airoha.
  • Пиковые нагрузки на сетевой интерфейс, предшествующие падению системы.

Как обнаружить атаку​


Обнаружение атаки затруднено из-за отсутствия специфичных IOC. Рекомендуется использовать следующие общие меры контроля:

  • Мониторинг логов ядра: Отслеживание сообщений об ошибках в драйвере airoha и сообщений о панике ядра (kernel panic).
  • Сетевой мониторинг: Анализ трафика на предмет аномальных пакетов, направленных на интерфейсы, использующие драйвер airoha.
  • Мониторинг стабильности: Отслеживание частоты падений и перезагрузок систем, использующих оборудование airoha.

Для более точного обнаружения рекомендуется разработать собственные правила на основе анализа трафика, который приводит к вызову функции airoha_ppe_foe_verify_entry() с некорректными параметрами.

Как проверить свою версию​


Для проверки версии ядра и наличия драйвера airoha используйте следующие команды:

Bash:
uname -r
uname -a
cat /proc/version

Проверьте, загружен ли драйвер airoha:

Bash:
lsmod | grep airoha

Если драйвер загружен, система потенциально уязвима, если ядро не содержит исправления. Для проверки наличия исправления необходимо свершить версию ядра с релизами, содержащими коммиты 112b5eff24e0, 5c121ee63568 и 9f7cd1e26d2f.

Исправление​


Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление.

  • Исправление: Патч изменяет вызов devm_kzalloc, чтобы выделение памяти учитывало размер типа u16 (sizeof(*ppe->foe_check_time)).
  • Коммиты: Исправление включено в следующие коммиты стабильных веток:
    • 112b5eff24e044561ee9599a0d34e0fcea1df4e0
    • 5c121ee635680c93d7074becf14cfbaac140f80d
    • 9f7cd1e26d2f1766438edc9b9254f2c618f9ae98

Обновите ядро через стандартные средства управления пакетами вашей дистрибутива или установите ядро из стабильных веток, содержащих эти коммиты.

Временные меры защиты​


Пока обновление ядра не выполнено, можно применить следующие временные меры:

  • Отключение драйвера: Если оборудование airoha не критично для работы, отключите драйвер airoha или отключите сетевое оборудование, использующее его.
  • Ограничение доступа: Ограничьте сетевой доступ к интерфейсам, использующим драйвер airoha, до минимума, чтобы снизить вероятность получения атакующим доступа к уязвимой функции.
  • Мониторинг: Усиленный мониторинг стабильности системы и сетевых аномалий.

Эти меры не устраняют уязвимость, но снижают вероятность ее эксплуатации.

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


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

  1. Проверка версии ядра: Убедитесь, что установленное ядро содержит исправление. Сверьте версию ядра с релизами, содержащими коммиты 112b5eff24e0, 5c121ee63568 и 9f7cd1e26d2f.
  2. Проверка кода драйвера: Если возможно, проверьте исходный код драйвера airoha в установленном ядре. Убедитесь, что в функции airoha_ppe_init вызов devm_kzalloc использует ppe_num_entries * sizeof(*ppe->foe_check_time).
  3. Функциональное тестирование: Проведите тестирование сетевого оборудования airoha, чтобы убедиться, что функции PPE/FOE работают корректно после обновления.

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

Вывод​


CVE-2026-80617 представляет собой серьезную уязвимость в драйвере airoha, способную привести к падению системы. Хотя публичные эксплойты не подтверждены, риск эксплуатации существует для систем, использующих соответствующее оборудование.

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

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


  1. NVD — CVE-2026-80617
  2. FIRST EPSS — CVE-2026-80617
  3. net: airoha: fix foe_check_time allocation size - kernel/git/stable/linux.git - Linux kernel stable tree
  4. net: airoha: fix foe_check_time allocation size - kernel/git/stable/linux.git - Linux kernel stable tree
  5. net: airoha: fix foe_check_time allocation size - kernel/git/stable/linux.git - Linux kernel stable tree
  6. CVEs — The Linux Kernel documentation

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


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