CVE: CVE-2026-74581
Продукт: Linux Kernel
Дата публикации: 21.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,40%; процентиль 32,75%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-74581 затрагивает подсистему маршрутизации IPv6 в ядре Linux. Ошибка возникает при подавлении маршрутов и приводит к использованию освобождённой памяти (use-after-free). Это позволяет атакующему с сетевым доступом вызвать сбой системы или потенциально выполнить код. Статья описывает механику ошибки, условия эксплуатации и методы проверки исправления.
Основные характеристики
Идентификатор: CVE-2026-74581. Критичность: CRITICAL. CVSS v3.1: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Тип ошибки: Use-After-Free (UAF) в функции fib6_rule_suppress(). Компонент: net/ipv6/fib6_rules.c. Дата публикации: 21.08.2026. EPSS: 0.00399 (процентиль 0.32754). CISA KEV: не подтверждено. Ошибка была введена в коммите cdef485217d3 и исправлена в коммите 6aea62e433fe1b586202a5fee8b5807ce635e1d7.
Какие продукты и версии затронуты
Уязвимость затрагивает ядра Linux, содержащие функцию fib6_rule_suppress() с дефектной логикой освобождения ссылок на маршруты. Точный список уязвимых версий ядра не указан в предоставленных источниках, однако патч был применен в stable-ветках. Администраторам необходимо проверить наличие коммита 6aea62e433fe1b586202a5fee8b5807ce635e1d7 в истории своего ядра. Все системы, использующие подавление IPv6-маршрутов (fib6 rules), потенциально подвержены риску.
Причина уязвимости
Причина ошибки заключается в нарушении инварианта управления ссылками на объект rt6_info. Функция fib6_rule_suppress() вызывает ip6_rt_put_flags() для освобождения маршрута, но не обнуляет указатель res->rt6. В результате структура результата поиска (fib6_result) сохраняет указатель на уже освобождённую память. Если последующие правила не предоставляют замену, fib6_rule_lookup() возвращает этот «зависший» указатель вызывающему коду. При последующем освобождении этого объекта через dst_release() происходит обращение к памяти, которая уже была освобождена, что приводит к use-after-free.
Как работает атака
Атака эксплуатирует логическую ошибку в обработке IPv6-маршрутов. Атакующий должен иметь возможность влиять на правила маршрутизации (fib6 rules) или генерировать трафик, который вызывает срабатывание правила подавления. Когда правило подавляет маршрут, ядро освобождает объект маршрута, но сохраняет его адрес в структуре результата. При следующем поиске маршрута для пакета ядро возвращает этот недействительный указатель. Когда ядро пытается освободить этот указатель (например, при завершении обработки пакета), происходит обращение к памяти, которая могла быть переназначена под другие данные. Это может привести к повреждению памяти, сбою ядра или выполнению кода в контексте ядра.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо:
- иметь сетевой доступ к системе;
- иметь возможность влиять на правила маршрутизации IPv6 (например, через уязвимую службу управления сетью или локальный доступ);
- сформировать трафик, который вызывает срабатывание правила подавления маршрута;
- обеспечить, чтобы последующие правила не предоставили замену для подавленного маршрута.
Точные условия, при которых ошибка приводит к удаленному выполнению кода, не раскрыты в источниках.
Возможный сценарий атаки
Атакующий отправляет пакет IPv6 на целевую систему. Пакет проходит через подсистему маршрутизации, где срабатывает правило подавления (suppress rule). Функция fib6_rule_suppress() освобождает объект маршрута, но не обнуляет указатель в структуре результата. При следующем поиске маршрута для другого пакета ядро возвращает этот недействительный указатель. Когда ядро пытается освободить этот указатель, происходит обращение к памяти, которая уже была освобождена. Если атакующий смог контролировать содержимое этой памяти (например, через heap spraying), он может повредить данные ядра и выполнить код.
Есть ли публичный эксплойт
Публичный эксплойт для CVE-2026-74581 не подтвержден в предоставленных источниках. Ошибка была обнаружена и исправлена до публикации CVE. EPSS-оценка (0.00399) указывает на низкую вероятность эксплуатации в ближайшем будущем. Однако, учитывая критическую оценку CVSS (9.8) и возможность удаленного доступа, нельзя исключать, что эксплойты могут появиться в будущем. Отсутствие сведений об эксплуатации не означает, что уязвимость не может быть использована.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-74581 не раскрыты в официальных источниках. Общие точки контроля (неспецифичные):
- появление записей о сбоях ядра (kernel panics) или ошибках памяти (memory corruption) в журналах;
- аномальная активность в подсистеме маршрутизации IPv6;
- попытки изменения правил маршрутизации (fib6 rules) с использованием инструментов управления сетью.
Эти признаки не являются уникальными для данной уязвимости и могут быть вызваны другими причинами.
Как обнаружить атаку
Для обнаружения эксплуатации уязвимости рекомендуется:
- мониторить журналы ядра на наличие ошибок, связанных с use-after-free или повреждением памяти;
- отслеживать изменения в правилах маршрутизации IPv6 (fib6 rules) с помощью auditd или аналогичных инструментов;
- использовать системы обнаружения вторжений (IDS/IPS) для мониторинга аномального трафика IPv6, который может вызывать срабатывание правил подавления.
Специфичные сигнатуры для данной уязвимости не опубликованы.
Как проверить свою версию
Для проверки версии ядра и наличия исправления используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Чтобы проверить наличие конкретного коммита, используйте
git log --grep="6aea62e433fe1b586202a5fee8b5807ce635e1d7" в исходном коде ядра, если он доступен. Для бинарных дистрибутивов проверьте наличие обновлений через пакетный менеджер (например, apt list --upgradable или dnf check-update).Исправление
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей коммит 6aea62e433fe1b586202a5fee8b5807ce635e1d7. Администраторам необходимо:
- проверить наличие обновлений ядра в репозиториях дистрибутива;
- применить обновления в тестовой среде;
- развернуть обновленное ядро в производственной среде.
Если обновление невозможно, рассмотрите временные меры митигации, описанные ниже.
Временные меры защиты
Временные меры митигации (не заменяют обновление):
- ограничить доступ к управлению правилами маршрутизации IPv6 (fib6 rules) до доверенных пользователей и служб;
- отключить использование правил подавления маршрутов, если это возможно без нарушения сетевой функциональности;
- ограничить сетевой доступ к системе, особенно для IPv6-трафика, если это допустимо;
- использовать сетевые экраны для фильтрации подозрительного IPv6-трафика.
Эти меры снижают вероятность эксплуатации, но не устраняют уязвимость.
Как проверить устранение уязвимости
Для проверки успешного применения исправления:
- убедитесь, что версия ядра содержит коммит 6aea62e433fe1b586202a5fee8b5807ce635e1d7;
- проверьте, что функция fib6_rule_suppress() теперь обнуляет res->rt6 после вызова ip6_rt_put_flags();
- проведите функциональное тестирование маршрутизации IPv6, чтобы убедиться, что подавление маршрутов работает корректно и не приводит к сбоям.
Используйте инструменты мониторинга для отслеживания стабильности системы после обновления.
Вывод
CVE-2026-74581 представляет серьезную угрозу для систем с уязвимым ядром Linux. Уязвимость позволяет атакующему с сетевым доступом вызвать сбой системы или потенциально выполнить код. Администраторам необходимо срочно проверить наличие исправления и обновить ядро. Временные меры митигации могут снизить риск, но не заменяют обновление. Рекомендуется включить мониторинг за аномальной активностью в подсистеме маршрутизации IPv6.
Официальные источники
- NVD — CVE-2026-74581
- FIRST EPSS — CVE-2026-74581
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
- net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 22.08.2026 — Опубликована первая версия материала.
- 26.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
