CVE-2026-80668 в Linux Kernel: гонка в nf_conntrack_expect и защита

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

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


В подсистеме netfilter ядра Linux устранена гонка при управлении ожиданиями (expectations) conntrack. Ошибка позволяла обращаться к освобожденной памяти через устаревший указатель exp->master в момент, когда таймер истечения ожидания вступал в конфликт с процедурой удаления записи. Патч заменяет механизм таймеров на garbage collection, синхронизирующий доступ к списку ожиданий.

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


Уязвимость относится к классу ошибок use-after-free в сетевом стеке ядра. Риск связан с возможностью выполнения кода в контексте ядра при успешной эксплуатации гонки в подсистеме conntrack.

  • 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,38% (процентиль 30,89%). Модель вероятности эксплуатации указывает на низкий уровень активности атакующих на данный момент.
  • CISA KEV: Уязвимость не включена в каталог известных эксплуатируемых уязвимостей.
  • Тип ошибки: Гонка (race condition) с последующим доступом к освобожденной памяти.

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


Затронуты версии ядра Linux, в которых подсистема nf_conntrack_expect использует старый API таймеров для управления жизненным циклом ожиданий. Точный перечень версий определяется наличием исправляющего коммита в истории сборки.

  • Подсистема: net/netfilter/nf_conntrack_expect.c.
  • Компоненты: nf_conntrack, nft_ct, nf_conntrack_helper.
  • Критерий уязвимости: Отсутствие коммита 7ec786f4230c2a9b2eaf97a2d45368933b49d2b2 в истории ядра.

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


Причина ошибки заключается в использовании API таймеров (timer_list) для удаления ожиданий conntrack. При гонке между удалением ожидания и срабатыванием таймера истечения (timer_del() возвращает false) возникает доступ к устаревшему указателю exp->master, который уже был освобожден.

Патч устраняет проблему, заменяя таймеры на механизм garbage collection (GC) через worker. Новый подход безопасно итератирует по списку ожиданий под защитой спинлока, исключая доступ к освобожденной памяти и корректно управляя счетчиками ссылок.

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


Атакующий эксплуатирует гонку, создавая и удаляя ожидания conntrack в момент, когда таймер их истечения срабатывает. Это приводит к доступу к освобожденной памяти через указатель exp->master, что может привести к выполнению кода в контексте ядра.

Механизм атаки требует точного тайминга и доступа к сетевому стеку. Патч устраняет гонку, перенося управление жизненным циклом ожиданий в GC worker, который синхронизирует доступ к списку ожиданий и предотвращает использование устаревших ссылок.

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


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

  • Включенная подсистема nf_conntrack с поддержкой ожиданий (expectations).
  • Наличие сетевых помощников (helpers), таких как H.323 или SIP, которые создают ожидания.
  • Возможность отправлять сетевой трафик, инициирующий создание и удаление conntrack-записей.
  • Точный тайминг для создания гонки между удалением ожидания и срабатыванием таймера.

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


Атакующий отправляет пакет, инициирующий создание ожидания conntrack (например, через SIP или H.323). Затем он быстро удаляет это ожидание, создавая гонку с таймером истечения. Если таймер срабатывает в момент, когда ожидание уже удалено, но память еще не освобождена, атакующий может манипулировать указателем exp->master для выполнения кода в ядре.

Сценарий требует высокого уровня контроля над сетевым трафиком и точного тайминга, что делает эксплуатацию сложной, но возможной для продвинутых атакующих.

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


Публичные эксплойты или PoC для CVE-2026-80668 не обнаружены. Уязвимость не включена в каталог CISA KEV, что указывает на отсутствие подтвержденных случаев эксплуатации в реальных атаках.

Отсутствие публичного эксплойта не означает, что уязвимость не может быть эксплуатирована. Атакующие с доступом к исходному коду ядра могут разработать собственный эксплойт, учитывая описанную механику гонки.

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


Специфичные IOC для CVE-2026-80668 не опубликованы. Общие признаки атаки на netfilter включают:

  • Необычные записи в журналах conntrack (например, через conntrack -L).
  • Пики нагрузки на сетевой стек, связанные с созданием и удалением conntrack-записей.
  • Аномальные сетевые сессии, инициирующие создание ожиданий (expectations).

Эти признаки неспецифичны и требуют дополнительной верификации.

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


Для обнаружения атаки рекомендуется:

  • Мониторинг журналов conntrack на аномальные паттерны создания и удаления ожиданий.
  • Анализ сетевого трафика на предмет необычных сессий, инициирующих создание conntrack-записей.
  • Использование инструментов аудита ядра (например, auditd) для отслеживания вызовов функций netfilter.

Специфичные правила детекции для CVE-2026-80668 отсутствуют, поэтому рекомендуется полагаться на общие механизмы мониторинга сетевого стека.

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


Для проверки версии ядра и наличия исправления используйте:

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

Затем сверьте версию ядра с наличием коммита 7ec786f4230c2a9b2eaf97a2d45368933b49d2b2 в истории ядра. Если коммит отсутствует, система уязвима.

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


Единственный способ исправить уязвимость — обновление ядра до версии, содержащей патч 7ec786f4230c2a9b2eaf97a2d45368933b49d2b2. Патч заменяет таймеры на GC worker, устраняя гонку.

  • Обновление ядра: Установите последнюю стабильную версию ядра от вашего дистрибутива.
  • Проверка: После обновления убедитесь, что коммит присутствует в истории ядра.
  • Тестирование: Протестируйте систему после обновления, особенно если используются сетевые помощники (SIP, H.323).

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


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

  • Отключите сетевые помощники (helpers), если они не критичны для работы.
  • Ограничьте доступ к сетевому стеку, используя firewall-правила для блокировки трафика, инициирующего создание conntrack-записей.
  • Уменьшите количество разрешенных ожиданий (expectations) через параметры netfilter.

Эти меры не устраняют уязвимость, но снижают вероятность успешной эксплуатации.

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


Для верификации исправления:

  1. Проверьте версию ядра: uname -r.
  2. Убедитесь, что коммит 7ec786f4230c2a9b2eaf97a2d45368933b49d2b2 присутствует в истории ядра.
  3. Протестируйте работу netfilter, создав тестовые conntrack-записи и убедившись, что они корректно удаляются.

Если все проверки пройдены, уязвимость устранена.

Вывод​


CVE-2026-80668 — критическая уязвимость в netfilter, требующая немедленного обновления ядра. Механика атаки сложна, но риск высокий для систем с включенными сетевыми помощниками. Администраторам рекомендуется проверить наличие патча и обновить ядро в приоритетном порядке.

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


  1. NVD — CVE-2026-80668
  2. FIRST EPSS — CVE-2026-80668
  3. netfilter: nf_conntrack_expect: use conntrack GC to reap expectations - kernel/git/stable/linux.git - Linux kernel stable tree
  4. netfilter: nf_conntrack_expect: use conntrack GC to reap expectations - kernel/git/stable/linux.git - Linux kernel stable tree
  5. CVEs — The Linux Kernel documentation

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


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