Skip to content
RiverCore
Dirty Frag Zero-Day даёт root-доступ на всех основных дистрибутивах Linux
Dirty Frag zero-dayLinux exploitprivilege escalationDirty Frag Linux kernel root exploitlocal privilege escalation zero-day Linux

Dirty Frag Zero-Day даёт root-доступ на всех основных дистрибутивах Linux

9 май 20267 мин. чтенияJames O'Brien

Представьте мост, который девять лет исправно служил, и вдруг одним утром четверга конструктивный инженер публикует точную нагрузку и угол, при которых он рухнет. Именно в такой ситуации оказались операторы Linux-инфраструктур 8 мая. Исследователь Хёнву Ким (Hyunwoo Kim) раскрыл информацию о Dirty Frag — локальном повышении привилегий, которое превращает любого непривилегированного пользователя в root практически во всех значимых дистрибутивах, причём эмбарго было нарушено ещё накануне.

Аналогия с мостом будет проходить через весь материал, потому что Dirty Frag — это не одна трещина в балке. Это две уязвимости в настиле, объединённые в цепочку, и ядро несёт эту нагрузку примерно с 2017 года.

Что произошло

8 мая 2026 года в 03:45 исследователь в области безопасности Хёнву Ким опубликовал полную документацию и рабочий proof-of-concept для Dirty Frag — локального root-эксплойта, который работает одной командой на большинстве крупных дистрибутивов Linux. Как сообщил BleepingComputer, уязвимость была внесена около девяти лет назад в криптографический интерфейс ядра algif_aead и с тех пор тихо ждала своего часа в основной ветке.

Ким не хотел раскрывать её таким образом. Он координировал действия с сопровождающими дистрибутивов через [email protected] — стандартный список предварительного раскрытия именно для такой межвендорной координации. Но 7 мая независимая третья сторона самостоятельно опубликовала эксплойт, и эмбарго рассыпалось.

«Поскольку эмбарго в настоящее время нарушено, патча и CVE не существует», — написал Ким. «После консультации с сопровождающими на [email protected] и по их просьбе этот документ о Dirty Frag публикуется». Иными словами: как только кот выскочил из мешка, утаивание технического описания лишь вредило защитникам.

К 09:58 EDT того же дня обе лежащие в основе уязвимости получили CVE-идентификаторы: CVE-2026-43284 — для уязвимости записи в кэш страниц xfrm-ESP, и CVE-2026-43500 — для уязвимости записи в кэш страниц RxRPC. Список затронутых систем напоминает перекличку производственного Linux: Ubuntu, Red Hat Enterprise Linux, CentOS Stream, AlmaLinux, openSUSE Tumbleweed и Fedora. На момент публикации ни для одного из них патча не было.

И всё это происходит в то время, когда все ещё в процессе развёртывания исправлений для Copy Fail — предыдущего root-эскалации, уже активно эксплуатируемого.

Техническое устройство уязвимости

Dirty Frag относится к тому же классу ошибок, что Dirty Pipe и Copy Fail, но бьёт в другую балку моста. Если Dirty Pipe эксплуатировал подсистему splice/pipe кэша страниц, то Dirty Frag атакует поле фрагмента отдельной структуры данных ядра, доступной через algif_aead — обращённый к пространству пользователя криптографический интерфейс для аутентифицированного шифрования.

Эксплойт объединяет в цепочку два отдельных примитива записи в кэш страниц. Первый — ошибка записи в кэш страниц xfrm-ESP (CVE-2026-43284), достижимая через код преобразования IPsec ESP. Второй — ошибка записи в кэш страниц RxRPC (CVE-2026-43500), достижимая через AFS-подобный стек RPC. Каждая из них сама по себе является точкой опоры для повреждения памяти. В связке они позволяют непривилегированному процессу модифицировать защищённые системные файлы в кэше страниц в обход проверок прав доступа, которые должен обеспечивать слой VFS. А это значит: перезапишите SUID-бинарник, или /etc/passwd, или любой другой привилегированный файл на диске, который в данный момент закэширован, — и вы root.

Вот момент, от которого каждый инженер, разбирающийся в ядре, должен встрепенуться. Ким описывает Dirty Frag как «детерминированную логическую ошибку, не зависящую от временного окна, не требующую гонки состояний; ядро не паникует при неудачной попытке эксплуатации, а процент успеха очень высок». Это ночной кошмар инженера. Эксплойты, основанные на гонке состояний, ненадёжны, шумны и зачастую вызывают аварийное завершение хоста при неудаче, что даёт EDR повод для сигнала тревоги. Детерминированная логическая ошибка — полная противоположность: тихая, воспроизводимая, поддающаяся скриптингу и легко встраиваемая в этап пост-эксплуатации любого массового вредоносного ПО.

Каждый, кто выпускал модули ядра для производственного парка, знает скучную истину: самые опасные ошибки — не театр безопасности памяти, а логические изъяны в интерфейсах, которые никто не проверяет, потому что они выглядят как связующий код. algif_aead — именно такой связующий код. Он стоит на мосту девять лет, потому что делает своё дело, и ни у кого не было причины внимательно изучить путь обработки фрагментов.

Кто пострадает

Прямой ответ: все, кто использует многопользовательский Linux. Более точный ответ зависит от того, кто ваши непривилегированные пользователи.

Общий хостинг, CI-раннеры, узлы Kubernetes с ненадёжными рабочими нагрузками, университетские кластеры, песочницы для bug bounty, а также любые iGaming- или fintech-платформы, позволяющие выполнять клиентский код на общих хостах, — всё это и есть настил моста. Локальное повышение привилегий имеет куда большее значение, когда «локальный» включает арендатора. Для операторов Kubernetes в частности: побег из контейнера плюс Dirty Frag равняется полному захвату узла, а вместе с ним уходят учётные данные kubelet и секреты, смонтированные на этом узле.

Компании в сфере платежей и трейдинга со строгими окнами управления изменениями оказались в неудобном положении. Патч ядра требует перезагрузки, перезагрузка — технического окна, а техническое окно в регулируемых средах — согласований. Предложенное Кимом смягчение — удаление модулей ядра esp4, esp6 и rxrpc — реально работает, но не бесплатно. Оно ломает IPsec VPN и распределённые файловые системы AFS. Если ваша межсайтовая связь работает на IPsec, вырвать ESP — это не однострочное решение, а архитектурное изменение.

Федеральные ведомства, всё ещё гонящиеся за дедлайном по Copy Fail, находятся в самой трудной ситуации. CISA добавила Copy Fail в каталог Known Exploited Vulnerabilities в предыдущую пятницу со сроком 15 мая для защиты федеральных Linux-устройств. Стандартная формулировка CISA о данном классе ошибок — что он «является частым вектором атак для злоумышленников и представляет значительные риски для федерального предприятия» — теперь применима к двум одновременным непропатченным root-дырам. А Pack2TheRoot, устранённый в апреле после десяти лет в демоне PackageKit, делает три за примерно тридцать дней.

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

План действий для команд безопасности

На этой неделе, не в следующем спринте:

Первое: решите, можете ли вы удалить модули. Выполните lsmod | grep -E 'esp4|esp6|rxrpc' на всём парке. Если ответ — «загружены, но не используются», применяйте смягчение от Кима: занесите их в чёрный список в /etc/modprobe.d/ и выгрузите живые через rmmod. Если вы используете IPsec или AFS — не можете, и вам нужен компенсирующий контроль.

Второе: ограничьте доступ к algif_aead. Интерфейс защищён сокетами AF_ALG. Профили seccomp, запрещающие socket(AF_ALG, ...) для ненадёжных рабочих нагрузок, устраняют поверхность атаки для данного дерева процессов. Для контейнерных платформ это изменение политики Pod Security или переход на gVisor/Kata. Проведите аудит сейчас, пока все сосредоточены на проблеме.

Третье: считайте ваши CI-раннеры и эфемерные вычислительные ресурсы скомпрометированными по умолчанию до выхода патча. Ротируйте все долгоживущие учётные данные, доступные с этих хостов. Кто хоть раз устранял последствия захвата раннера, знает: счёт за уборку превышает счёт за патч на порядок.

Четвёртое: следите за обнаружением. Dirty Frag детерминирован и тих, поэтому обычный сигнал «всплеск паник ядра» вас не спасёт. Ищите неожиданное создание сокетов AF_ALG некриптографическими рабочими нагрузками, аномальные модификации SUID-бинарников и аномалии кэша страниц, если ваш eBPF-инструментарий это поддерживает. Сопоставьте поведение с MITRE ATT&CK T1068 и напишите правила обнаружения до того, как эксплойт окажется в ботнете, а не после.

Пятое: протестируйте процесс применения патчей ядра. Когда апстрим выпустит исправление, вы должны быть той командой, которая развернёт его за 48 часов, а не той, что оформляет заявку на изменение.

Ключевые выводы

  • Dirty Frag — детерминированный однокомандный локальный root-эксплойт, затрагивающий Ubuntu, RHEL, CentOS Stream, AlmaLinux, openSUSE Tumbleweed и Fedora; на момент раскрытия патчей не было.
  • Он объединяет в цепочку CVE-2026-43284 (xfrm-ESP) и CVE-2026-43500 (RxRPC) через девятилетний интерфейс algif_aead; гонка состояний не требуется.
  • Эмбарго было нарушено 7 мая, когда независимая третья сторона опубликовала эксплойт, вынудив Кима выпустить полную документацию днём позже.
  • Смягчение путём удаления модулей esp4, esp6 и rxrpc работает, но ломает IPsec VPN и AFS, поэтому не является бесплатным для производственных сетей.
  • На фоне Copy Fail (уже в CISA KEV с федеральным дедлайном 15 мая) и апрельского Pack2TheRoot это третья глубокая root-уязвимость Linux примерно за тридцать дней.

Вернёмся к мосту. Девять лет трафика, две трещины в балках, и инженер, обнаруживший причину разрушения, был вытолкнут с трибуны прямо во время выступления. Настил пока держит нагрузку. Выдержит ли он вашу в ближайшие две недели — зависит от того, что вы сделаете до пятницы.

Часто задаваемые вопросы

В: Что такое Dirty Frag и почему это опасно?

Dirty Frag — это эксплойт локального повышения привилегий в Linux, раскрытый 8 мая 2026 года исследователем Хёнву Кимом. Он объединяет две ошибки записи в кэш страниц ядра в цепочку, предоставляя root одной командой на большинстве крупных дистрибутивов. Ким описывает его как детерминированную логическую ошибку с очень высоким процентом успеха — без гонки состояний и без паники ядра при неудаче.

В: Какие дистрибутивы Linux затронуты и существует ли патч?

Затронуты Ubuntu, Red Hat Enterprise Linux, CentOS Stream, AlmaLinux, openSUSE Tumbleweed и Fedora. На момент первоначальной публикации патча не существовало и CVE не был присвоен, хотя впоследствии двум лежащим в основе уязвимостям были присвоены идентификаторы CVE-2026-43284 и CVE-2026-43500.

В: Как сейчас смягчить последствия Dirty Frag?

Рекомендуемое Кимом смягчение — занести в чёрный список и удалить модули ядра esp4, esp6 и rxrpc. Это закрывает вектор атаки, но ломает IPsec VPN и распределённые файловые системы AFS, поэтому всем, кто на них полагается, необходим компенсирующий контроль, например политики seccomp, блокирующие сокеты AF_ALG для ненадёжных рабочих нагрузок.

JO
James O'Brien
RiverCore Analyst · Dublin, Ireland
ПОДЕЛИТЬСЯ
// RELATED ARTICLES
ГлавнаяРешенияПроектыО насКонтакт
Новости06
Дублин, Ирландия · ЕСGMT+1
LinkedIn
🇷🇺RU