← Все статьи
2026-05-08 04:01 · 🌐 СНГ (tech/AI)

Dirty Frag: в Linux нашли новый способ стать root без патчей

Исследователь Hyunwoo Kim опубликовал детали Dirty Frag — нового класса LPE-уязвимостей в Linux, позволяющего локальному пользователю получить root через запись в page cache ядра. Патчей нет: эмбарго сломано досрочно.

Dirty Frag: в Linux нашли новый способ стать root без патчей

Без предупреждения и без патчей в открытый доступ вышел документ о Dirty Frag — новом классе уязвимостей повышения привилегий (LPE) в ядре Linux. Исследователь Hyunwoo Kim описывает, как локальный непривилегированный пользователь может получить root через запись в page cache ядра — используя сетевые буферы подсистем xfrm-ESP и RxRPC. Ни CVE, ни бэкпорт-патчей на момент публикации не существует.

Контекст

Dirty Frag — не первый представитель своего класса. В 2022 году Dirty Pipe показал: запись в page cache через pipe-механизм позволяет модифицировать read-only файлы и получить привилегии. Затем появился Copy Fail — аналогичная атака через сокет AF_ALG. Теперь Dirty Frag продолжает ту же линию через ESP и RxRPC. Три разные подсистемы ядра, но один и тот же повторяющийся класс ошибок — ядро неверно управляет ссылками на страницы памяти при определённых сетевых операциях.

Публикация произошла вынужденно: по словам Kim, эмбарго было нарушено сторонними участниками, после чего он выпустил документ по согласованию с мейнтейнерами linux-distros@openwall.org. Это означает, что дистрибутивы (Debian, Ubuntu, RHEL, Alpine и другие) получили информацию одновременно с публикой — без времени на подготовку патчей.

Ключевое отличие от предшественников: по заявлению исследователя, эксплуатация не требует race condition и отличается высокой надёжностью. Это повышает практическую угрозу — атаки без временны́х окон сложнее митигировать эвристиками.

Аналитика

Page cache — общий буфер ядра между дисковыми данными и процессами. Если его можно загрязнить через сетевой путь кода, это означает горизонтальное движение внутри хоста. Для мультиарендных сред — Kubernetes, Docker, LXC, CI/CD runners, shared-хостинг — это особенно критично: контейнер, получивший root на хосте, выходит из своей изоляции.

Паттерн «один класс ошибок в разных подсистемах» говорит о системной проблеме в подходе к управлению страницами памяти в ядре, а не об единичном баге. Это значит, что после патча текущих векторов потенциально могут появиться новые вариации. Сообщество ядра Linux, вероятно, будет проводить более широкий аудит похожих мест в коде.

До выхода официальных патчей окно уязвимости открыто. Для облачных провайдеров и DevOps-команд, которые запускают недоверенный код (публичные CI, пользовательские воркеры, студенческие стенды), это реальный вектор атаки прямо сейчас. Особенно если на хосте загружены модули esp4, esp6 или rxrpc.

Кейсы применения в бизнесе

B2B-SaaS стартап на Kubernetes: если в кластере работают сторонние воркеры или клиентский код (например, sandbox для пользовательских скриптов), срочно проверить, загружены ли модули esp/rxrpc на узлах. Если они не используются — отключить через modprobe -r или занести в blocklist. Включить мониторинг аномальных syscall на уровне контейнера (Falco, Tetragon).

Корпорация с legacy-инфраструктурой: серверы с длинным uptime и редкими обновлениями ядра — основная зона риска. Провести инвентаризацию ядер (желательно централизованно через Ansible/Chef), приоритизировать хосты с контейнерными workload и внешним доступом. Подписаться на security-листы дистрибутива, чтобы получить патч в первый же день выхода.

SMB и локальный хостинг-провайдер в КР/СНГ: shared-хостинг — прямая цель. Один арендатор на сервере может получить доступ к данным других. Временная мера — изолировать клиентов на уровне отдельных VM вместо контейнеров на одном ядре, пока патч не вышел. Уведомить клиентов об ограниченном окне повышенного риска.

Кейсы в личной жизни

Разработчик: если гоняете Docker на Linux-хосте и используете публичные CI-образы — проверьте, какие ядерные модули загружены: lsmod | grep -E 'esp|rxrpc'. Если не нужны — уберите. Обновитесь сразу, как дистрибутив выпустит патч ядра.

Студент/CTF-участник: Dirty Frag — хороший повод разобраться, как работает page cache в Linux и почему запись через сетевые буферы вообще может до него добраться. Материалы по Dirty Pipe (2022) дают хорошую базу; документ Kim продолжает ту же линию и отлично читается как образовательный разбор.

Системный администратор на фрилансе: если ведёте серверы клиентов — проверьте подписки на security advisories дистрибутивов (Ubuntu USN, Debian DSA, RHEL RHSA). Для критичных хостов настройте автоматическое применение security-патчей ядра через unattended-upgrades или dnf-automatic.

Как применить сегодня

  • Проверить загруженные модули: lsmod | grep -E 'esp4|esp6|rxrpc' — если не используются, выгрузить и добавить в /etc/modprobe.d/blacklist.conf
  • Подписаться на security-бюллетени своего дистрибутива: Ubuntu USN, Debian DSA, RHEL RHSA — патч появится там первым
  • Для Kubernetes-кластеров: включить runtime security (Falco или аналог) с правилами на подозрительные привилегированные syscall из контейнеров
  • Изолировать workload с недоверенным кодом на отдельные VM (не контейнеры на одном ядре) до выхода патча
  • Прочитать оригинальный документ Kim — в нём технические детали цепочки xfrm-ESP и RxRPC, полезны для понимания класса ошибок и аудита собственного кода
← Все статьи