CVE-2026-74581 в Linux Kernel: use-after-free в IPv6 и критический риск для сети

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.

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


  1. NVD — CVE-2026-74581
  2. FIRST EPSS — CVE-2026-74581
  3. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  4. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  5. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  6. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  7. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  8. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  9. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree
  10. net: ipv6: clear suppressed fib6 rule result - kernel/git/stable/linux.git - Linux kernel stable tree

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


  • 22.08.2026 — Опубликована первая версия материала.
  • 26.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ