CVE-2026-80681 в Linux Kernel: use-after-free в драйвере VXLAN

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

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


В драйвере VXLAN ядра Linux обнаружена уязвимость use-after-free, возникающая при обработке пакетов с L2-редирекцией. Ошибка позволяет атакующему, имеющему доступ к сети, вызвать повреждение памяти или сбой системы. Статья описывает механизм атаки, затронутые версии и способы проверки исправления.

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


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

  • Тип ошибки: Use-after-free (CWE-416).
  • 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%).

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


Уязвимость затрагивает ядра Linux, содержащие функцию route_shortcircuit() в драйвере VXLAN. Ошибка была введена в коммите ae8840825605.

  • Версии: Все ядра, содержащие коммит ae8840825605 и не содержащие исправления.
  • Компонент: drivers/net/vxlan/vxlan_core.c.
  • Исправление: Включено в ядра, содержащие коммит 1395a676ec15a0a02a2a6d86602324f2d5fd41d5.

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


В функции vxlan_xmit() указатель на Ethernet-заголовок кэшируется до вызова route_shortcircuit(). Внутри этой функции может быть вызвана pskb_may_pull(), которая перераспределяет память пакета.

После возврата в vxlan_xmit() кэшированный указатель указывает на освобожденную память. Обращение к eth->h_dest приводит к use-after-free. Исправление заключается в повторном получении заголовка через eth_hdr(skb) после вызова route_shortcircuit().

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


Атакующий отправляет пакет, который проходит через VXLAN-интерфейс с включенной L2-редирекцией. В процессе обработки вызывается route_shortcircuit(), который может изменить структуру пакета.

После возврата в vxlan_xmit() код обращается к старому указателю на Ethernet-заголовок. Если память была освобождена и заново выделена, атакующий может контролировать данные по этому адресу, что приводит к повреждению памяти или выполнению кода.

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


Для успешной эксплуатации необходимо:

  • Наличие VXLAN-интерфейса в системе.
  • Включение функции L2-редирекции (L2 redirection with L3 switching).
  • Доступ атакующего к сети, где обрабатываются VXLAN-пакеты.
  • Отсутствие исправления в ядре.

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


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

После возврата в vxlan_xmit() код обращается к освобожденной памяти. Если атакующий контролирует данные в этой памяти, он может повредить структуры ядра или выполнить код с привилегиями ядра.

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


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

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


Специфичные IOC для этой уязвимости не опубликованы. Общие точки контроля (неспецифичные):

  • Сбои ядра (kernel panics) при обработке сетевого трафика.
  • Записи в журналах о use-after-free в сетевом стеке.
  • Необъяснимые изменения в сетевых интерфейсах VXLAN.

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


Для обнаружения атаки можно использовать:

  • Мониторинг журналов ядра на ошибки памяти в сетевом стеке.
  • Анализ сетевого трафика на аномальные VXLAN-пакеты.
  • Проверку конфигурации VXLAN-интерфейсов на включенную L2-редирекцию.

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


Проверьте версию ядра и наличие исправления:

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

Проверьте, содержит ли ядро коммит 1395a676ec15a0a02a2a6d86602324f2d5fd41d5.

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


Обновите ядро до версии, содержащей исправление. Патч добавляет строку eth = eth_hdr(skb); после вызова route_shortcircuit() в drivers/net/vxlan/vxlan_core.c.

  • Коммит исправления: 1395a676ec15a0a02a2a6d86602324f2d5fd41d5.
  • Файл: drivers/net/vxlan/vxlan_core.c.
  • Изменение: 1 строка добавлена.

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


Пока обновление не установлено:

  • Отключите VXLAN-интерфейсы, если они не используются.
  • Ограничьте доступ к сети, где обрабатываются VXLAN-пакеты.
  • Отключите L2-редирекцию, если это возможно в конфигурации.

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


После обновления проверьте:

  • Версию ядра через uname -r.
  • Наличие коммита 1395a676ec15a0a02a2a6d86602324f2d5fd41d5 в истории ядра.
  • Отсутствие ошибок use-after-free в журналах при нагрузке на VXLAN.

Вывод​


Уязвимость CVE-2026-80681 представляет серьезный риск для систем с VXLAN. Обновление ядра до версии с патчем является обязательным. При невозможности обновления следует ограничить доступ к VXLAN-интерфейсам и мониторить журналы на аномалии.

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


  1. NVD — CVE-2026-80681
  2. FIRST EPSS — CVE-2026-80681
  3. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  4. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  5. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  6. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  7. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  8. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  9. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree
  10. vxlan: re-fetch eth header after route_shortcircuit() - kernel/git/stable/linux.git - Linux kernel stable tree

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


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