CVE-2026-80600 в Linux Kernel: use-after-free в batman-adv

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

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


В модуле batman-adv ядра Linux обнаружена уязвимость use-after-free. Ошибка возникает при обработке DHCPACK-пакетов в функции batadv_dat_snoop_incoming_dhcp_ack.

Из-за неправильного порядка операций указатель на данные пакета становится недействительным после перераспределения буфера. Это может привести к падению ядра или выполнению кода.

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


Риск связан с нарушением целостности памяти в сетевом стеке ядра при обработке пакетов в mesh-среде. Успешная эксплуатация может привести к полному контролю над системой.

  • 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,51% (процентиль 41,02%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.
  • CISA KEV: Не подтверждено наличием в каталоге Known Exploited Vulnerabilities.
  • Статус: Received. Официальные данные о публичных эксплойтах отсутствуют.

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


Затронуты версии ядра Linux, содержащие модуль batman-adv и не включающие исправление из коммита 48067b2ae4504500a7093d9e1e16b42e70330480. Точные номера версий дистрибутивов не указаны в предоставленных источниках.

Рекомендуется проверить наличие патча в вашем конкретном выпуске.

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


Ошибка находится в функции batadv_dat_snoop_incoming_dhcp_ack. Код извлекает указатель hw_src на MAC-адрес из заголовка Ethernet до вызова batadv_dat_get_vid.

Внутри batadv_dat_get_vid вызывается pskb_may_pull, который может перераспределить буфер skb. В результате ранее полученный указатель hw_src начинает указывать на освобожденную память. Использование этого указателя после перераспределения приводит к ошибке use-after-free.

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


Атакующий направляет на систему, работающую с batman-adv, специально сформированный DHCPACK-пакет. Ядро обрабатывает пакет в контексте ядра.

При попытке извлечь данные из перемещенного буфера происходит обращение к невалидной памяти. Это может вызвать сбой ядра (kernel panic) или, при удачном стечении обстоятельств, позволить атакующему контролировать выполнение кода в пространстве ядра.

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


Для успешной атаки необходимо, чтобы на целевой системе был загружен и активен модуль batman-adv. Атакующий должен иметь сетевой доступ к интерфейсу, на котором работает batman-adv.

Требуется возможность отправлять DHCPACK-пакеты, которые будут обработаны функцией batadv_dat_snoop_incoming_dhcp_ack. Удаленный доступ без аутентификации подтверждается вектором CVSS.

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


Сценарий начинается с отправки DHCPACK-пакета на mesh-интерфейс. Ядро принимает пакет и передает его в обработчик batman-adv. Функция batadv_dat_snoop_incoming_dhcp_ack начинает анализ.

Извлекается указатель на MAC-адрес. Далее вызывается batadv_dat_get_vid, который может переместить данные пакета. После возврата из функции код использует старый указатель. Происходит обращение к освобожденной памяти, что приводит к нестабильности системы или выполнению вредоносного кода.

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


В предоставленных источниках нет информации о публичных эксплойтах или подтвержденной эксплуатации в реальных атаках. Описан только технический сценарий и патч.

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

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


Специфичных индикаторов компрометации (IOC) для этой уязвимости в источниках не приведено. Общие признаки могут включать внезапные падения ядра (kernel panic) или сообщения об ошибках памяти (memory corruption) в логах, совпадающие по времени с активностью в mesh-сети.

Эти признаки неспецифичны и требуют дополнительной проверки.

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


Для обнаружения атаки или последствий уязвимости рекомендуется анализировать логи ядра. Ищите сообщения об ошибках use-after-free, kernel panic или срабатывания KASAN (Kernel Address Sanitizer), если он включен.

Также полезно мониторить сетевой трафик на предмет аномального количества DHCPACK-пакетов, направленных на интерфейсы batman-adv. Специфичных сигнатур для IDS/IPS в источниках нет.

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


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

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

Для проверки наличия конкретного патча в исходниках ядра можно использовать git log или сравнить хэш коммита с известным исправлением 48067b2ae4504500a7093d9e1e16b42e70330480. В бинарных дистрибутивах используйте средства управления пакетами для проверки обновлений.

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


Единственным подтвержденным способом устранения уязвимости является установка обновленного ядра, содержащего коммит 48067b2ae4504500a7093d9e1e16b42e70330480. Патч меняет порядок операций: сначала вызывается batadv_dat_get_vid, а затем извлекается указатель на MAC-адрес.

Это гарантирует, что указатель будет получен после возможного перераспределения буфера. Обновите ядро через официальные каналы вашего дистрибутива.

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


Если немедленное обновление ядра невозможно, можно временно отключить модуль batman-adv, если это допустимо для вашей инфраструктуры. Команда modprobe -r batman-adv выгрузит модуль.

Также можно ограничить сетевой доступ к интерфейсам, использующим batman-adv, с помощью файрвола, блокируя входящие DHCPACK-пакеты. Эти меры снижают поверхность атаки, но не устраняют саму уязвимость в коде.

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


После обновления ядра убедитесь, что новая версия загружена и работает. Проверьте версию с помощью uname -r. Убедитесь, что модуль batman-adv, если он используется, загружен из обновленного ядра.

Для подтверждения наличия патча в исходниках можно проверить наличие изменений в файле net/batman-adv/distributed-arp-table.c. Тестирование в изолированной среде с включенным KASAN поможет убедиться в отсутствии ошибок use-after-free.

Вывод​


CVE-2026-80600 — серьезная уязвимость в модуле batman-adv, требующая оперативного устранения. Из-за высокого CVSS-скора и возможности удаленной эксплуатации без аутентификации, системы с активным batman-adv находятся под угрозой.

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

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


  1. NVD — CVE-2026-80600
  2. FIRST EPSS — CVE-2026-80600
  3. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  4. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  5. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  6. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  7. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  8. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  9. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree
  10. batman-adv: dat: acquire ARP hw source only after skb realloc - kernel/git/stable/linux.git - Linux kernel stable tree

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


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