Две недели мая 2026 года стоили администраторам Linux-инфраструктур больше нервов, чем многие предыдущие кварталы. 29 апреля исследователи Theori опубликовали уязвимость CVE-2026-31431 под именем Copy Fail. Через девять дней, 7 мая, независимый исследователь Хёну Ким раскрыл цепочку из двух связанных уязвимостей CVE-2026-43284 и CVE-2026-43500, получившую кодовое имя Dirty Frag. Обе истории закончились одинаково - публичный proof-of-concept появился раньше патчей, а каждый непривилегированный локальный пользователь получил готовый способ дойти до root на серверах под практически всеми крупными дистрибутивами.

Copy Fail вырос из логической ошибки в криптографической подсистеме ядра

Дефект в CVE-2026-31431 затронул модуль algif_aead - интерфейс AEAD-сокетов в подсистеме AF_ALG, через который пользовательский код обращается к криптографическому API ядра. Это логический баг в шаблоне authencesn, который позволяет непривилегированному локальному пользователю записать четыре контролируемых байта в page cache любого читаемого файла на Linux-системе и использовать это для получения root. По шкале CVSS 3.1 уязвимость оценили в 7.8 - категория high, не критическая, что для индустрии оказалось почти насмешкой.

Корни проблемы уходят в 2017 год. Уязвимость возникла из взаимодействия трёх разумных по отдельности изменений ядра, сделанных за несколько лет. В 2011 году добавили authencesn, AEAD-обёртку для IPsec. В 2015 году появилась поддержка AEAD-сокетов AF_ALG. В 2017 году в файл algif_aead.c добавили оптимизацию для in-place операций. Каждое изменение прошло ревью и не вызывало вопросов. Их сочетание создало эксплуатируемое окно, которое девять лет никто не замечал.

То, что отличает Copy Fail от классических уязвимостей вроде Dirty Cow или Dirty Pipe - детерминированность. Прямолинейный логический недочёт работает каждый раз без гонок и циклов повторов. Один и тот же скрипт на Python длиной 732 байта получает root на Ubuntu, Amazon Linux, RHEL и SUSE без перекомпиляции или подстройки смещений под конкретную версию. Никаких скомпилированных payload, только стандартная библиотека Python и обычные системные вызовы - socket, setsockopt, splice, sendmsg, recvmsg. Минимальный криминалистический след, максимальная переносимость.

Скорость обнаружения Copy Fail с участием искусственного интеллекта изменила оценки рисков

Деталь, которая прошла почти незамеченной в первых публикациях, оказалась самой громкой для аналитиков рынка уязвимостей. По описанию авторов, ИИ-система обнаружила Copy Fail примерно за час. Девять лет существования бага в коде, который ревьюили лучшие kernel-разработчики мира, против шестидесяти минут работы языковой модели. Цифры впечатляют не сами по себе, а в контексте цен на подобные эксплойты.

До закрытия в начале 2025 года Zerodium платила до 500 тысяч долларов за качественные Linux-эксплойты с привилегиями нулевого дня. Сегодняшние brokers серого рынка вроде Crowdfense работают в диапазоне от 10 тысяч до 7 миллионов, причём верхняя планка зарезервирована именно за такими универсальными надёжными примитивами. Эксплойт ценой в особняк нашёлся за час работы нейросети. Это не отдельный инцидент, а сигнал индустрии о смене баланса между атакующими и защитниками.

Реакция Microsoft, CISA и независимых исследователей последовала почти мгновенно. CISA внесла CVE-2026-31431 в свой каталог известных эксплуатируемых уязвимостей KEV из-за активной эксплуатации и портативного характера эксплойта. CERT-EU выпустил рекомендации с приоритизацией защиты Kubernetes-узлов и CI/CD-раннеров, доступных для непроверенных нагрузок. Microsoft Defender начал отслеживать признаки эксплуатации в реальной среде.

Dirty Frag добавил вторую волну эксплуатации через цепочку из двух багов в IPsec и RxRPC

Пока администраторы догоняли патчи для Copy Fail, 7 мая на oss-security появилось раскрытие следующего класса уязвимостей. Хёну Ким сообщил о двух дефектах, которые он назвал Dirty Frag. CVE-2026-43284 затронул IPsec ESP, модули esp4 и esp6. CVE-2026-43500 затронул RxRPC, протокол распределённой файловой системы AFS. По отдельности каждый из багов не давал надёжного эксплуатационного примитива, но их связка достигала немедленного root на большинстве дистрибутивов.

Архитектура Dirty Frag построена на пути in-place дешифровки в esp4, esp6 и rxrpc. Когда приёмный путь дешифрует данные через paged-буферы, не находящиеся в приватном владении ядра, например страницы pipe, попадающие в сокет через splice или sendfile, непривилегированные процессы могут удерживать ссылки на получившийся открытый текст. Это даёт примитив записи в page cache, который публичный proof-of-concept превращает в root одной командой.

Технически Dirty Frag оказался даже опаснее предшественника. Четырёхбайтовая запись Copy Fail сменилась полным контролем атакующего над plaintext на произвольном смещении в single-shot режиме. Это не race condition, а детерминированный логический дефект с очень высоким уровнем успешности и минимальным риском kernel panic.

Связка двух уязвимостей работает по принципу взаимного покрытия слепых зон. xfrm-ESP-write даёт четырёхбайтовый STORE-примитив, RxRPC-write предоставляет привилегию создания namespace. Объединение этих возможностей открывает root на практически всех major-дистрибутивах. Любопытно, что вторая публичная версия эксплойта получила насмешливое имя Copy Fail 2 Electric Boogaloo - отсылка к серии низкобюджетных фильмов 1980-х.

Срыв координированного раскрытия превратил плановую публикацию в гонку с эксплуатацией

История с Dirty Frag показала, насколько хрупкой бывает дисциплина ответственного раскрытия в индустрии. Хёну Ким приватно сообщил о багах сопровождающим ядра Linux 29-30 апреля 2026 года и отправил патчи в рассылку netdev. 7 мая он передал детальную информацию об уязвимостях и эксплойте в закрытую рассылку, где координируется раскрытие между дистрибутивами. В тот же день несвязанная третья сторона опубликовала детали и работающий эксплойт для одной из проблем, разрушив эмбарго.

Последствия срыва оказались тяжёлыми. На момент раскрытия CVE-идентификаторы ещё не были выделены, патчи не подготовлены, координация между вендорами не завершена. Red Hat Enterprise Linux, AlmaLinux, Debian, Ubuntu, Fedora, Arch Linux, CentOS, CloudLinux, Amazon Linux - все эти дистрибутивы оказались уязвимы одновременно, и у каждой команды было считаное количество часов на сборку патчей под давлением активной эксплуатации в сети.

Linux Kernel Organization выпустила патчи для CVE-2026-43284 уже 8 мая. AlmaLinux в тот же день выкатила исправленные сборки ядра в тестовые репозитории, через несколько часов переведя их в продакшен. CloudLinux и KernelCare отгрузили live-патчи без необходимости перезагрузки серверов в течение суток. Тем не менее CVE-2026-43500 на момент середины мая всё ещё ожидал публикации в NVD - часть цепочки оставалась формально незакрытой даже после выхода патчей.

Затронутая инфраструктура охватывает практически весь современный enterprise-стек

Список уязвимых сред производит мрачное впечатление. Уязвимы Ubuntu, RHEL, CentOS Stream, AlmaLinux, Fedora, openSUSE и развёртывания OpenShift. Затронуты модули, входящие в стандартные kernel-пакеты каждого major enterprise-дистрибутива. Контейнерные нагрузки наследуют экспозицию хостового ядра - компрометация любого контейнера, который может создать сокеты AF_KEY, XFRM netlink или AF_RXRPC, что является поведением по умолчанию для нерестриктивных конфигураций Docker, containerd и большинства Kubernetes-подов, эскалируется до root на хосте.

Для понимания масштаба стоит перечислить категории инфраструктур, оказавшихся под прямой угрозой:

  1. Multi-tenant серверы, где разные клиенты получают shell на одной машине, оказались максимально уязвимы для эксплуатации непривилегированными пользователями;
  2. Kubernetes-кластеры с нерестриктивными seccomp-профилями позволяют атакующему пробить контейнер и выйти на хост;
  3. CI/CD-раннеры, исполняющие код из непроверенных pull-request, превращаются в готовый плацдарм для root-доступа на build-нодах;
  4. Виртуальные машины и облачные инстансы с разделяемым доступом подвергаются той же угрозе через любой канал получения локального исполнения;
  5. Hosting-провайдеры с shared-серверами для веб-проектов несут риск компрометации тысяч сайтов через одну точку входа.

Граница между удалённой и локальной уязвимостью в современной облачной инфраструктуре давно стёрлась. Получить локальное исполнение через SSH, веб-шелл, побег из контейнера или скомпрометированный аккаунт с низкими привилегиями - стандартная задача для атакующего. После этого Copy Fail и Dirty Frag превращают любой такой плацдарм в root.

Митигации без патча работают, но ломают часть сетевых функций

Команды безопасности, которые не могли сразу применить патчи, получили временные обходные пути. Для Copy Fail мера сводится к отключению модуля algif_aead через файл в /etc/modprobe.d и его выгрузке. Этот workaround не затрагивает dm-crypt с LUKS, kTLS, IPsec и XFRM, OpenSSL, GnuTLS, NSS или SSH - всё перечисленное использует криптографию иначе, в обход уязвимого интерфейса.

С Dirty Frag сложнее. Рекомендация - блокировать модули esp4, esp6 и rxrpc, что неизбежно ломает поддержку IPsec-туннелей и распределённой файловой системы AFS. Для серверов, не использующих эти технологии, цена приемлема. Для VPN-шлюзов и систем, активно работающих с IPsec, временное отключение модулей становится отдельной задачей переноса нагрузки.

Лучший путь остаётся прежним - срочное обновление ядра до версий, в которых закрыты обе цепочки уязвимостей. Сервисы вроде KernelCare предлагают живые патчи без перезагрузки, что особенно важно для систем с высокими требованиями к uptime. AlmaLinux 8 получила kernel-4.18.0-553.123.2.el8_10 как референсную сборку с исправлениями, на основе которой собирались патчи CloudLinux. Ubuntu 26.04 Resolute и более новые ядра не затронуты Copy Fail.

Эволюция класса page cache-уязвимостей продолжается, и индустрия пересматривает методы защиты

Copy Fail и Dirty Frag принадлежат к одному классу - детерминированные логические дефекты, дающие примитив записи в page cache. Этот класс восходит к Dirty Cow 2016 года и Dirty Pipe 2022 года, но новые экземпляры заметно надёжнее. Раньше атакующий полагался на race condition или специфические смещения ядра. Современные уязвимости работают предсказуемо на десятках конфигураций без подстройки.

Linux Kernel Organization фиксирует, что в каталоге CISA KEV находится более 20 записей об уязвимостях ядра Linux, включая недавно раскрытую Copy Fail. Это значительная статистика для системы, на которой держится огромная часть мировой инфраструктуры. AlmaLinux уже сигнализирует о следующей уязвимости с кодовым именем Fragnesia, отслеживаемой как CVE-2026-46300, патчи для которой проходят тестирование. Поток новых дефектов в подсистемах ядра не останавливается.

Аналитики Microsoft Defender фиксируют ограниченную активность в реальной среде, где эскалация привилегий через su может указывать на техники, связанные с Copy Fail или Dirty Frag. Elastic Security Labs опубликовала правила детектирования, ориентированные на паттерны эксплуатации. Защита смещается от реактивного патчинга к проактивному обнаружению попыток эксплуатации в момент исполнения.

Сочетание двух факторов - детерминированных логических дефектов и роли искусственного интеллекта в их поиске - меняет рынок уязвимостей. Если ИИ-инструмент находит за час дефект, который человек не замечал девять лет, баланс силы между атакующими и защитниками сдвигается в сторону тех, кто первым освоит подобные инструменты для обороны. Май 2026 года стал датой, после которой администраторам Linux-инфраструктур придётся пересмотреть всю модель угроз - старые предположения о медленном темпе появления универсальных эксплойтов больше не действуют.