Dirty Frag: локальное повышение привилегий в Linux

Уязвимость Dirty Frag в ядре Linux 4.10+ позволяет локально повысить привилегии или выйти из контейнера.

2026-06-02 GIGATAP Team #security
#linux#kernel#cve

Dirty Frag: локальное повышение привилегий в ядре Linux#

Источник: CERT/CC VU#980487

Суть уязвимости#

Новая локальная уязвимость, названная “Dirty Frag”, затрагивает ядра Linux версии 4.10 и выше. Она использует подсистему фрагментации и сборки IPv4/IPv6, комбинируя две ранее известные ошибки: xfrm-ESP Page-Cache Write и RxRPC Page-Cache Write. Проблема возникает при некорректной обработке перекрывающихся или некорректных смещений фрагментов, что позволяет вызвать повреждение памяти или kernel panic. PoC-эксплойты показывают, что возможны управляемые выходы за границы буфера, потенциально открывая путь к локальному повышению привилегий или выходу из контейнера.

Почему это важно#

Риски существуют для систем, обрабатывающих специально сформированные сетевые пакеты. В зависимости от конфигурации, жесткости ядра и сетевой доступности, Dirty Frag может привести к:

  • Локальному или удалённому отказу в обслуживании через kernel panic.
  • Повреждению памяти в сетевом стеке.
  • Побегу из контейнера в уязвимых средах.
  • Дополнительным примитивам эксплуатации при цепочке с другими уязвимостями.

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

Что проверить и как защититься#

Основные меры — обновление и временные обходные пути:

  • Патч: Обновите ядро через стандартные каналы дистрибутива, когда выйдет обновление.
  • Модули: Если патч задерживается, отключите уязвимые модули:
sh -c "printf 'install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true"
  • При загрузке: Для встроенных модулей добавьте initcall_blacklist=esp4,esp6,rxrpc в параметры загрузки и перезагрузите систему.
  • Контейнеры: Применяйте seccomp-фильтры, AppArmor-политики или eBPF-контроль для блокировки создания сокетов AF_ALG и AF_RXRPC.

Проверяйте /sys/module/<module_name>/refcnt перед отключением модуля. Если используете контейнеры, пересмотрите политики безопасности runtime.

Чего не стоит преувеличивать#

  • Dirty Frag в основном локальный; удалённая эксплуатация требует доступа к специально подготовленным пакетам.
  • Kernel panic сам по себе не всегда ведёт к повышению привилегий.
  • PoC демонстрирует повреждение памяти, но реальный путь к root зависит от других факторов: контейнеризации, опций сборки ядра и уровней защиты.
  • Официальные заявления производителей ещё не опубликованы; в продакшене опирайтесь на патчи upstream, а не на сторонние форки.

Эта уязвимость подчёркивает важность оперативного применения патчей, контроля модулей и мер защиты на уровне контейнеров.

Ссылки#