CVE-2026-74705 в Debian: use-after-free в UDP-туннелях, уязвимые версии и защита

CVE: CVE-2026-74705
Продукт: Debian
Дата публикации: 22.08.2026
Критичность: CRITICAL
CVSS: 10.0 (3.1)
EPSS: 0,50%; процентиль 40,64%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В ядре Linux обнаружена уязвимость use-after-free в функции сегментации UDP-туннелей. Ошибка возникает при некорректном порядке получения указателя на заголовок UDP относительно операции перемещения данных в буфере skb.

Для администраторов Debian критично, что уязвимость затрагивает несколько поддерживаемых релизов, включая bookworm и bullseye, где исправление пока не выпущено. Статья разбирает механику ошибки, статус патчей в Debian и безопасные методы проверки состояния системы.

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


Риск связан с нарушением целостности памяти в сетевом стеке ядра при обработке туннельного трафика. Успешная эксплуатация может привести к удаленному выполнению кода или отказу в обслуживании без необходимости аутентификации.

  • Тип ошибки: Use-after-free (UAF) в функции __skb_udp_tunnel_segment().
  • CVSS 3.1: 10.0 (CRITICAL). Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H. Это означает, что атака возможна удаленно, сложность низкая, привилегии не требуются, а последствия затрагивают все три компонента CIA.
  • EPSS: 0,5% (процентиль 40,64%). Модель FIRST оценивает вероятность эксплуатации в ближайшие 30 дней как низкую, но не нулевую.
  • Статус в Debian: Для bookworm, bullseye и forky статус «open» (исправление в разработке или не выпущено). Для trixie и sid статус «resolved».

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


Уязвимость затрагивает пакет linux в дистрибутиве Debian. Статус исправления различается в зависимости от релиза. Ниже приведены данные из Debian Security Tracker.

  • bookworm: Статус open. Текущая версия в репозитории bookworm: 6.1.176-1. В bookworm-security: 6.1.180-1. Исправленная версия не указана.
  • bullseye: Статус open. Текущая версия в репозитории bullseye: 5.10.223-1. В bullseye-security: 5.10.262-1. Исправленная версия не указана.
  • forky: Статус open. Текущая версия: 7.1.8-2. Исправленная версия не указана.
  • trixie: Статус resolved. Исправленная версия: 6.12.105-1. Текущая версия в trixie-security: 6.12.107-1.
  • sid (unstable): Статус resolved. Исправленная версия: 7.1.9-1. Текущая версия: 7.1.12-1.

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


Причина уязвимости кроется в порядке выполнения операций в функции __skb_udp_tunnel_segment(). Код сначала получает указатель на заголовок UDP, а затем выполняет операцию pull для обеспечения наличия туннельного заголовка в начале буфера skb.

Операция pull может вызвать перераспределение памяти (realloc) для skb->head. Если это происходит, ранее сохраненный указатель на заголовок UDP становится недействительным (dangling pointer). Последующее обращение к этому указателю приводит к чтению или записи в освобожденную память, что классифицируется как use-after-free.

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


Атакующий отправляет специально сформированные UDP-пакеты, которые проходят через механизм сегментации туннелей в ядре. Для срабатывания ошибки необходимо, чтобы при обработке пакета сработало условие, при котором skb->head требует перераспределения памяти в процессе pull.

После перераспределения памяти функция продолжает использовать старый указатель на UDP-заголовок. Это позволяет атакующему контролировать данные, которые читаются или записываются в невалидную область памяти. В контексте ядра это может привести к повреждению структур данных, вызову исключений (panic) или, в худшем случае, к удаленному выполнению кода с привилегиями ядра.

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


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

  • Сетевой доступ: Возможность отправлять UDP-пакеты на целевой хост, где активен туннельный трафик.
  • Отсутствие аутентификации: Вектор CVSS указывает PR:N, что означает, что аутентификация не требуется.
  • Точное управление буфером: Необходимость формирования пакета таким образом, чтобы вызвать перераспределение памяти skb->head в нужный момент. Это требует знания внутренней структуры буферов и состояния сети, что повышает сложность практической эксплуатации по сравнению с простыми ошибками ввода-вывода.

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


Сценарий атаки начинается с отправки UDP-пакета, который идентифицируется ядром как туннельный трафик, требующий сегментации. Пакет попадает в функцию __skb_udp_tunnel_segment().

В процессе обработки функция пытается обеспечить доступ к туннельному заголовку, вызывая pull. Если размер данных требует перемещения буфера, память перераспределяется. Функция продолжает выполнение, используя старый указатель на UDP-заголовок.

Если атакующий заранее подготовил данные в освобожденной памяти (через другие механизмы или предсказуемость аллокатора), он может повредить критические структуры ядра. Результатом может быть падение системы (DoS) или выполнение кода атакующего в контексте ядра.

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


На момент публикации CVE-2026-74705 в каталоге NVD и в материалах Debian Security Tracker отсутствуют сведения о публичных эксплойтах или подтвержденной эксплуатации в реальных атаках.

Ссылки на git.kernel.org указывают на коммиты с исправлением, что подтверждает наличие технического описания и патча. Однако отсутствие упоминаний в CISA KEV и низкий балл EPSS (0,5%) свидетельствуют о том, что массовая эксплуатация пока не зафиксирована. Отсутствие публичного PoC не гарантирует, что эксплойт не существует в закрытых базах данных.

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


Специфичные индикаторы компрометации (IOC) для этой уязвимости в предоставленных источниках не раскрыты.

Общие неспецифичные признаки, которые могут указывать на попытку эксплуатации, включают:

  • Внезапные сбои ядра (kernel panics) или перезагрузки системы при обработке сетевого трафика.
  • Аномальные записи в dmesg или kern.log, связанные с ошибками памяти или сетевыми драйверами.
  • Непредсказуемое поведение сетевых сервисов, использующих туннели (например, GRE, IPsec).

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


Для обнаружения потенциальной эксплуатации или последствий уязвимости рекомендуется:

  • Мониторинг логов ядра: Анализ dmesg и /var/log/kern.log на наличие сообщений об ошибках памяти, segfaults или panic в контексте сетевых функций.
  • Контроль целостности системы: Использование инструментов типа AIDE или Tripwire для отслеживания изменений в системных файлах, если подозревается успешная эксплуатация.
  • Сетевой анализ: Мониторинг аномального UDP-трафика, особенно если система участвует в туннельных соединениях. Однако без специфичных сигнатур это может генерировать много ложных срабатываний.

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


Для проверки текущей версии пакета linux и статуса исправления в Debian используйте следующие команды. Замените <имя-пакета> на linux, если вы проверяете именно этот пакет.

Bash:
# Проверка версии дистрибутива
cat /etc/debian_version
cat /etc/os-release

# Проверка версии установленного пакета ядра
apt-cache policy linux
dpkg-query -W -f='${Package} ${Version}\n' linux

Сравните полученную версию с данными из Debian Security Tracker. Для bookworm и bullseye убедитесь, что вы не используете версии, предшествующие потенциальному патчу, если он будет выпущен.

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


Основным методом устранения уязвимости является обновление пакета linux до версий, содержащих исправление.

  • trixie: Обновитесь до версии 6.12.105-1 или выше. Текущая версия в security-репозитории 6.12.107-1 содержит исправление.
  • sid: Обновитесь до версии 7.1.9-1 или выше. Текущая версия 7.1.12-1 содержит исправление.
  • bookworm, bullseye, forky: На момент подготовки статьи исправление не выпущено в security-репозиториях. Рекомендуется следить за обновлениями в Debian Security Tracker. При наличии критической необходимости можно рассмотреть применение патча из upstream-ядра, но это требует тщательного тестирования.

Для применения обновлений используйте стандартные средства пакетного менеджера:

Bash:
apt update
apt upgrade linux-image-$(uname -r)

После обновления перезагрузите систему для применения нового ядра.

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


Пока исправление не выпущено для bookworm, bullseye и forky, можно рассмотреть следующие временные меры:

  • Ограничение туннельного трафика: Если возможно, отключите или ограничьте доступ к туннельным интерфейсам (GRE, IPsec и т.д.) для недоверенных сетей.
  • Сетевая сегментация: Изолируйте критические хосты от внешних сетей, где может находиться атакующий.
  • Мониторинг: Усиленный мониторинг логов ядра и сетевой активности для раннего обнаружения аномалий.

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

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


После применения обновлений проверьте, что система использует исправленное ядро.

Bash:
# Проверка версии загруженного ядра
uname -a

# Проверка версии пакета
dpkg-query -W -f='${Package} ${Version}\n' linux-image-$(uname -r)

Убедитесь, что версия соответствует или превышает исправленную версию, указанную в Debian Security Tracker для вашего релиза. Для trixie это 6.12.105-1, для sid — 7.1.9-1. Если версия ниже, обновление не применилось корректно.

Вывод​


CVE-2026-74705 представляет собой критическую уязвимость в ядре Linux, затрагивающую несколько релизов Debian. Для администраторов bookworm, bullseye и forky ситуация требует внимания, так как исправление пока не выпущено.

Рекомендуется следить за обновлениями в Debian Security Tracker и применять временные меры защиты, если система подвержена риску. Для trixie и sid обновление до последних версий устраняет уязвимость.

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


  1. NVD — CVE-2026-74705
  2. Debian Security Tracker — CVE-2026-74705
  3. FIRST EPSS — CVE-2026-74705

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


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