CVE: CVE-2026-92489
Продукт: Linux Kernel
Дата публикации: 17.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,46%; процентиль 39,25%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме XFRM ядра Linux обнаружена ошибка управления памятью. Функция xfrm_dev_direct_output() освобождает skb повторно, когда local_out() возвращает значение не равное 1 и netfilter отбрасывает пакет. Ошибка приводит к double-free и повреждению состояния ядра.
Основные характеристики
Уязвимость затрагивает сетевой стек Linux и проявляется при совместной работе XFRM с netfilter. Сбой происходит в обработке skb после сброса connection tracking.
- Тип ошибки: double-free skb в xfrm_dev_direct_output()
- CVSS 3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H(9.8)
- Доступность: удалённая, без привилегий и взаимодействия с пользователем
- EPSS: 0,463% (процентиль 39,25%)
- Статус эксплойта: не подтверждён в предоставленных источниках
Какие продукты и версии затронуты
Затронута подсистема XFRM ядра Linux. Конкретные версии дистрибутивов и номера пакетов в предоставленных источниках не указаны.
- Компонент: net/xfrm/xfrm_output.c
- Функция: xfrm_dev_direct_output()
- Upstream commit с исправлением: 2aed51fc58d9ce450e2c116efb956160fd06fa02
- Stable commits с исправлением:
Причина уязвимости
В xfrm_dev_direct_output() после вызова local_out() проверяется возвращаемое значение. Значение, отличное от 1, означает, что skb была потреблена или её владение перешло другому компоненту.
Код продолжает освобождать skb через kfree_skb(), даже когда владение уже передано. Это вызывает двойное освобождение памяти и повреждает структуру данных ядра.
Исправление возвращает результат local_out() напрямую, что соответствует обработке владения в xfrm_output_resume().
Как работает атака
Атака требует прохождения пакета через XFRM-путь с включённым netfilter. Пакет должен быть таким, чтобы netfilter отбросил его и вызвал nf_reset_ct(skb).
После сброса stateful inspection функция local_out() возвращает значение не равное 1. В уязвимой версии xfrm_dev_direct_output() вызывает kfree_skb(), хотя skb уже принадлежит другому компоненту.
Двойное освобождение повреждает память ядра и может привести к потере контроля над системой.
Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- Включённый netfilter в системе
- Работающая подсистема XFRM, например IPsec или другие механизмы шифрования/маршрутизации пакетов
- Пакет, отбрасываемый netfilter, что вызывает nf_reset_ct(skb)
- local_out() возвращает значение не равное 1
- Уязвимая версия ядра Linux с ошибкой в xfrm_dev_direct_output()
Возможный сценарий атаки
Атакующий отправляет специально подготовленный сетевой пакет на систему с включённым netfilter и XFRM.
Пакет проходит через nf_reset_ct(), после чего local_out() возвращает значение не равное 1. В уязвимой версии xfrm_dev_direct_output() вызывает kfree_skb() повторно, что приводит к double-free.
Повреждение памяти ядра может быть использовано для выполнения произвольного кода в контексте ядра.
Есть ли публичный эксплойт
В предоставленных источниках нет информации о публичном эксплойте, PoC или подтверждённой эксплуатации.
- PoC: не указан
- Техническое описание атаки: доступно в commit messages и diff
- Подтверждённая эксплуатация: не подтверждена
- Исправление: доступно в stable commits ядра Linux
Признаки эксплуатации
Специфичные IOC для этой уязвимости не указаны в предоставленных источниках.
Неспецифичные точки контроля:
- Аномальные сетевые запросы к системе с включённым netfilter и XFRM
- Повышенная нагрузка на ядро при обработке пакетов
- Ошибки в журналах ядра, связанные с памятью или сетевым стеком
- Неожиданные изменения конфигурации netfilter или XFRM
Как обнаружить атаку
Для обнаружения атаки можно использовать следующие методы:
- Мониторинг журналов ядра на ошибки памяти и сетевые сбои
- Анализ сетевых логов для выявления аномальных пакетов, проходящих через netfilter
- Проверка конфигурации XFRM и netfilter на предмет нештатных изменений
- Сравнение версии ядра с известными уязвимыми версиями
Как проверить свою версию
Для проверки версии ядра Linux используйте следующие команды:
uname -r— показывает краткую версию ядра
uname -a— показывает полную информацию о системе и ядре
cat /proc/version— показывает версию ядра из файла /proc/version
Исправление
Для устранения уязвимости необходимо обновить ядро Linux до версии, содержащей исправление.
- Upstream commit: 2aed51fc58d9ce450e2c116efb956160fd06fa02
- Stable commits с исправлением:
Обновите ядро через пакетный менеджер дистрибутива или установите патч вручную.
Временные меры защиты
Пока обновление ядра не выполнено, можно применить следующие временные меры:
- Отключить netfilter, если это допустимо для архитектуры системы
- Ограничить доступ к системе с включённым XFRM и netfilter
- Удалить лишние правила netfilter, которые могут вызывать nf_reset_ct()
- Мониторинг сетевых запросов на предмет аномальной активности
Как проверить устранение уязвимости
После обновления ядра проверьте:
- Версию ядра с помощью
uname -rилиcat /proc/version
- Наличие исправления в исходном коде xfrm_dev_direct_output()
- Отсутствие ошибок в журналах ядра при обработке пакетов
- Функциональность XFRM и netfilter для подтверждения корректной работы
Вывод
CVE-2026-92489 представляет серьёзную угрозу для систем с включённым netfilter и XFRM. Ошибка double-free в xfrm_dev_direct_output() может быть использована для получения контроля над системой.
Обновление ядра до версии с исправлением является основным способом устранения уязвимости. До обновления рекомендуется ограничить доступ к системе и мониторить сетевую активность.
Официальные источники
- NVD — CVE-2026-92489
- FIRST EPSS — CVE-2026-92489
- xfrm: Fix skb double-free in xfrm_dev_direct_output() - kernel/git/stable/linux.git - Linux kernel stable tree
- xfrm: Fix skb double-free in xfrm_dev_direct_output() - kernel/git/stable/linux.git - Linux kernel stable tree
- xfrm: Fix skb double-free in xfrm_dev_direct_output() - kernel/git/stable/linux.git - Linux kernel stable tree
- xfrm: Fix skb double-free in xfrm_dev_direct_output() - kernel/git/stable/linux.git - Linux kernel stable tree
- xfrm: Fix skb double-free in xfrm_dev_direct_output() - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 22.09.2026 — Опубликована первая версия материала.
