CVE: CVE-2026-74744
Продукт: Linux Kernel
Дата публикации: 26.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,52%; процентиль 41,84%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере ipvlan ядра Linux выявлена ошибка инициализации, при которой параметры
needed_headroom и needed_tailroom не наследуются от нижележащего устройства. Это приводит к недостаточному резервированию памяти для сетевых заголовков, что может вызвать повреждение памяти и отказ в обслуживании. Описаны технические причины, условия срабатывания и порядок применения исправлений.Основные характеристики
Риск связан с нарушением целостности памяти в сетевом стеке при обработке пакетов через ipvlan-интерфейсы, настроенные поверх устройств с дополнительными заголовками. Ошибка приводит к переполнению буфера или обращению к освобожденной памяти, что может вызвать панику ядра.
- CVSS: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Оценка указывает на возможность удаленной атаки без аутентификации и взаимодействия пользователя.
- EPSS: 0,52% (процентиль 41,84%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, однако критичность уязвимости остается высокой.
- Тип ошибки: Memory corruption (slab-use-after-free, skb headroom underflow) в компоненте
drivers/net/ipvlan.
- Статус: Исправление внесено в mainline и портировано в стабильные ветки ядра. Эксплуатация в реальных атаках не подтверждена.
Какие продукты и версии затронуты
Уязвимость затрагивает драйвер ipvlan в ядре Linux. Ошибка присутствовала с момента первоначального добавления драйвера (коммит
2ad7bf363841) и была исправлена в следующих версиях:- Mainline: коммит
e16e960d55a40d36bd7c2494cc005e757dc9a1ef.
- Stable 6.15: коммит
5c2ca77212eb38559b0353b8363b7a84f4b019dd.
- Stable 6.12: коммит
5f33188457bbcc1b11ca87084037963c516ed3d9.
- Stable 6.6: коммит
af602c4d0ee548da18e2409b4b4da1079625a372.
- Stable 5.15: коммит
c0fbe31f6b20ade0465130685859faa5c86fda59.
- Stable 5.10: коммит
f3c17ff65f54781cde696e16a6c577615ed735aa.
Точные номера версий пакетов для конкретных дистрибутивов (Debian, Ubuntu, RHEL) в предоставленных источниках не указаны. Необходимо сверяться с официальными базами данных безопасности вашего провайдера.
Причина уязвимости
Причина ошибки заключается в функции
ipvlan_init(). При инициализации ipvlan-устройства драйвер копирует от физического устройства (phy_dev) параметр hard_header_len, но оставляет поля needed_headroom и needed_tailroom равными нулю.Эти параметры определяют, сколько дополнительного пространства в начале и конце буфера пакета (
skb) необходимо зарезервировать для заголовков и трейлеров нижележащих протоколов. Если нижележащее устройство (например, MACsec, IPsec, WireGuard или туннель) требует дополнительного места, а ipvlan не учитывает это, верхние слои стека не резервируют достаточный объем памяти.В результате, при попытке добавить заголовки или трейлеры, происходит переполнение буфера или обращение к памяти, которая уже была освобождена (use-after-free). Это приводит к повреждению памяти и потенциальному падению ядра.
Как работает атака
Атака эксплуатирует несоответствие между фактическими требованиями нижележащих сетевых протоколов и параметрами, которые видит драйвер ipvlan. Когда пакет проходит через ipvlan-интерфейс, ядро рассчитывает необходимый размер буфера на основе
needed_headroom и needed_tailroom. Поскольку эти значения в ipvlan равны нулю, ядро выделяет буфер минимального размера.Если на нижележащем уровне (например, в MACsec или IPsec) требуется добавить заголовок, функция
dev_hard_header() или ipvlan_hard_header() пытается записать данные в область, которая не была зарезервирована. Это приводит к переполнению буфера (skb headroom underflow). В некоторых случаях это вызывает срабатывание KASAN (Kernel Address Sanitizer) с ошибкой slab-use-after-free, что приводит к панике ядра.Атакующий может использовать этот сценарий для удаленного отказа в обслуживании (DoS), отправляя специально сформированные пакеты через ipvlan-интерфейс, настроенный поверх защищенного канала.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо соблюдение следующих условий:
- В системе настроен ipvlan-интерфейс.
- ipvlan-интерфейс привязан к физическому устройству, которое требует дополнительного пространства для заголовков или трейлеров (например, MACsec, IPsec, WireGuard, туннели или veth с rx headroom).
- Атакующий имеет возможность отправлять сетевой трафик через данный ipvlan-интерфейс.
- В ядре не применено исправление, устраняющее некорректное наследование параметров
needed_headroomиneeded_tailroom.
Возможный сценарий атаки
Сценарий атаки начинается с настройки ipvlan-интерфейса поверх защищенного канала (например, IPsec или MACsec). Атакующий отправляет пакет, который проходит через ipvlan. Ядро, не зная о необходимости дополнительного пространства для заголовков нижележащего протокола, выделяет буфер недостаточного размера.
При обработке пакета функция
dev_hard_header() пытается добавить заголовок, что приводит к переполнению буфера. Это вызывает повреждение памяти, срабатывание KASAN и, в конечном итоге, панику ядра. Система перезагружается или становится недоступной, что приводит к отказу в обслуживании.Есть ли публичный эксплойт
Уязвимость была обнаружена с помощью syzbot (автоматизированный фаззер ядра Linux). В коммитах с исправлением указаны ссылки на отчеты syzbot, что подтверждает наличие Proof of Concept (PoC).
В предоставленных источниках нет информации о публичном эксплойте, используемом в реальных атаках, или о подтвержденной эксплуатации в дикой природе.
Отсутствие сведений о реальной эксплуатации не означает, что эксплойт не существует, но подтвержденный факт атак пока не зафиксирован.
Признаки эксплуатации
Специфические индикаторы компрометации (IOC) для этой уязвимости не раскрыты в официальных источниках. Однако можно использовать следующие неспецифичные признаки для мониторинга:
- Паника ядра (kernel panic) с сообщениями, связанными с
ipvlan,dev_hard_headerилиslab-use-after-free.
- Внезапные перезагрузки системы или потеря сетевой доступности на хостах с настроенными ipvlan-интерфейсами.
- Аномальные сетевые пакеты, проходящие через ipvlan-интерфейсы, настроенные поверх защищенных каналов (IPsec, MACsec).
Как обнаружить атаку
Для обнаружения потенциальной эксплуатации уязвимости рекомендуется:
- Мониторинг журналов ядра (
dmesg,journalctl) на наличие сообщений об ошибках KASAN, связанных сipvlanилиslab-use-after-free.
- Анализ сетевых журналов на предмет аномального трафика через ipvlan-интерфейсы, особенно если они используются в связке с IPsec, MACsec или WireGuard.
- Проверка конфигурации ipvlan-интерфейсов и их привязки к нижележащим устройствам, требующим дополнительного пространства для заголовков.
Как проверить свою версию
Для проверки версии ядра и определения, затронуто ли оно уязвимостью, используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Сравните полученную версию ядра с версиями, содержащими исправление. Исправление было внесено в коммит
e16e960d55a40d36bd7c2494cc005e757dc9a1ef и портировано в стабильные ветки. Точные номера версий пакетов для дистрибутивов не указаны в источниках, поэтому рекомендуется сверяться с официальными базами данных безопасности вашего дистрибутива.Исправление
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление. Ниже перечислены идентификаторы коммитов, содержащих исправление:
- Mainline:
e16e960d55a40d36bd7c2494cc005e757dc9a1ef
- Stable 6.15:
5c2ca77212eb38559b0353b8363b7a84f4b019dd
- Stable 6.12:
5f33188457bbcc1b11ca87084037963c516ed3d9
- Stable 6.6:
af602c4d0ee548da18e2409b4b4da1079625a372
- Stable 5.15:
c0fbe31f6b20ade0465130685859faa5c86fda59
- Stable 5.10:
f3c17ff65f54781cde696e16a6c577615ed735aa
Обновите ядро через пакетный менеджер вашего дистрибутива. После обновления перезагрузите систему, чтобы применить новое ядро.
Временные меры защиты
Пока обновление ядра не применено, можно рассмотреть следующие временные меры:
- Отключите ipvlan-интерфейсы, если они не критичны для работы системы.
- Избегайте использования ipvlan-интерфейсов поверх устройств, требующих дополнительного пространства для заголовков (MACsec, IPsec, WireGuard, туннели).
- Ограничьте сетевой доступ к ipvlan-интерфейсам, если это возможно, чтобы снизить риск удаленной атаки.
Как проверить устранение уязвимости
Для проверки, что исправление применено, выполните следующие шаги:
- Проверьте версию ядра с помощью
uname -rи убедитесь, что она соответствует версии, содержащей исправление.
- Проверьте наличие коммита с исправлением в истории ядра (если доступно):
git log --oneline | grep e16e960d55a40d36bd7c2494cc005e757dc9a1ef.
- Убедитесь, что ipvlan-интерфейсы работают корректно и не вызывают ошибок в журналах ядра.
Вывод
CVE-2026-74744 представляет собой критическую уязвимость в драйвере ipvlan Linux Kernel, которая может привести к отказу в обслуживании. Уязвимость была обнаружена с помощью syzbot и исправлена в последних версиях ядра. Рекомендуется как можно скорее обновить ядро до версии, содержащей исправление, и проверить конфигурацию ipvlan-интерфейсов для минимизации риска.
Официальные источники
- NVD — CVE-2026-74744
- FIRST EPSS — CVE-2026-74744
- ipvlan: inherit needed_headroom and needed_tailroom from phy_dev - kernel/git/stable/linux.git - Linux kernel stable tree
- ipvlan: inherit needed_headroom and needed_tailroom from phy_dev - kernel/git/stable/linux.git - Linux kernel stable tree
- ipvlan: inherit needed_headroom and needed_tailroom from phy_dev - kernel/git/stable/linux.git - Linux kernel stable tree
- ipvlan: inherit needed_headroom and needed_tailroom from phy_dev - kernel/git/stable/linux.git - Linux kernel stable tree
- ipvlan: inherit needed_headroom and needed_tailroom from phy_dev - kernel/git/stable/linux.git - Linux kernel stable tree
- ipvlan: inherit needed_headroom and needed_tailroom from phy_dev - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 29.08.2026 — Опубликована первая версия материала.
