Уязвимость Fragnasia позволяет получить root на Linux без состояния гонки

Исследователь Zellic раскрыл Fragnasia — логическую ошибку в XFRM ESP-in-TCP, которая даёт любому локальному пользователю права root. PoC опубликован.

Обложка: Уязвимость Fragnasia позволяет получить root на Linux без состояния гонки

Обновите ядро Linux: исследователь Zellic обнаружил новую уязвимость класса Dirty Frag, получившую имя Fragnasia и идентификатор CVE-2026-46300. Она затрагивает все ядра, выпущенные до 13 мая 2026 года, и позволяет непривилегированному локальному пользователю повысить привилегии до root — без состояния гонки и без предварительных прав.

Fragnasia — самостоятельная логическая ошибка в подсистеме XFRM ESP-in-TCP ядра Linux. Используя её, атакующий может записывать произвольные байты в кэш страниц доступных только для чтения файлов (page cache), в том числе системных бинарников, и таким образом, например, подменить содержимое /usr/bin/su, чтобы получить оболочку с правами root.

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

CVE-2026-46300 затрагивает все ядра Linux до 13 мая 2026 года.

Уязвимость позволяет локальному пользователю получить root без состояния гонки.

Эксплойт PoC уже опубликован исследователем William Bowling (Zellic).

Fragnasia относится к классу Dirty Frag, но это отдельный баг с отдельным патчем.

Временная мера: выгрузить модули esp4, esp6, rxrpc (ломает IPsec и AFS).

Что такое Fragnasia и как она связана с Dirty Frag

Уязвимость была раскрыта Уильямом Боулингом, руководителем направления assurance в компании Zellic, 13 мая 2026 года. Вместе с отчётом он опубликовал рабочий proof-of-concept эксплойт: он записывает примитив memory-write в ядро, затем через него портит page cache бинарника /usr/bin/su, чтобы получить root-оболочку.

Fragnasia принадлежит к новому классу уязвимостей Dirty Frag, который был раскрыт неделей ранее. Dirty Frag объединяет баги в том же XFRM-коде, позволяющие модифицировать защищённые системные файлы в памяти. Однако в отличие от оригинального Dirty Frag, который цепляет два отдельных CVE (CVE-2026-43284 и CVE-2026-43500) через состояние гонки, Fragnasia — самостоятельный баг, требующий отдельного патча.

Fragnasia — член класса уязвимостей Dirty Frag. Это отдельный баг в ESP/XFRM, отличный от dirtyfrag, с собственным патчем. Однако он находится в той же поверхности атаки, и митигация для него такая же, как для dirtyfrag. Он злоупотребляет логической ошибкой в подсистеме Linux XFRM ESP-in-TCP для произвольной побайтовой записи в page cache файлов только для чтения — без какой-либо состояния гонки.
William BowlingHead of Assurance, Zellic

Как работает эксплойт Fragnasia: технические детали CVE-2026-46300

Ошибка находится в подсистеме XFRM — фреймворке трансформации пакетов ядра Linux, используемом для реализации IPsec. Конкретно затронут путь обработки ESP-пакетов поверх TCP-соединений (ESP-in-TCP). Логический баг позволяет выйти за пределы разрешённых операций записи и изменить содержимое страниц в page cache — включая страницы, отображённые из файлов, которые открыты только на чтение (O_RDONLY).

Механизм эксплойта PoC: злоупотребляя этим примитивом записи, атакующий перезаписывает page cache системного бинарника /usr/bin/su. Поскольку запись происходит в памяти (а не на диске), после перезагрузки бинарник восстанавливается. Для сервера с непрерывной работой это сценарий полного захвата: root-доступ без следов на диске.

Как защититься

Полная защита — обновление ядра до версии, выпущенной 13 мая 2026 года или позже. Дистрибутивы Linux уже выпускают патчи. Если обновление невозможно немедленно, применяйте временную митигацию:

			rmmod esp4 esp6 rxrpc
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf
		

Важно: выгрузка модулей сломает AFS (распределённая файловая система) и IPsec VPN. Оцените последствия перед применением в продакшне.

Эти же команды используются для митигации Dirty Frag — они отключают уязвимые модули ядра и запрещают их повторную загрузку через /etc/modprobe.d/dirtyfrag.conf.

  1. Проверьте версию ядра: uname -r
  2. Обновитесь через менеджер пакетов: apt upgrade / dnf upgrade / yum update
  3. Перезагрузите систему для загрузки нового ядра
  4. Если обновление невозможно — выгрузите esp4, esp6, rxrpc командами выше

Раскрытие Fragnasia происходит на фоне нескольких недавних серьёзных уязвимостей в ядре Linux:

  • Dirty Frag (CVE-2026-43284 + CVE-2026-43500) — предшественник Fragnasia, раскрыт неделей ранее. Публичный PoC эксплойт доступен.
  • Copy Fail — ещё одна уязвимость повышения привилегий, сейчас активно эксплуатируется в атаках. 1 мая 2026 CISA добавило её в каталог известных эксплуатируемых уязвимостей (KEV) и обязало федеральные агентства США закрыть её до 15 мая.
  • Pack2TheRoot — уязвимость в демоне PackageKit, присутствовавшая незамеченной десять лет. Закрыта в апреле 2026.

Все три уязвимости — локальное повышение привилегий до root. Наличие публичных PoC для Fragnasia и Dirty Frag делает их особенно опасными для систем с ненадёжными локальными пользователями (shared hosting, контейнерные среды).

Часто задаваемые вопросы
1
Что такое Fragnasia (CVE-2026-46300)?

Fragnasia — уязвимость локального повышения привилегий в ядре Linux. Логическая ошибка в подсистеме XFRM ESP-in-TCP позволяет непривилегированному пользователю записывать байты в page cache файлов только для чтения и получить доступ root. Обнаружена Уильямом Боулингом (Zellic) и раскрыта 13 мая 2026 года.

2
Какие системы уязвимы?

Все дистрибутивы Linux с ядром, выпущенным до 13 мая 2026 года. Fragnasia не требует состояния гонки и не привязана к конкретному дистрибутиву — проблема в общем коде ядра XFRM.

3
Как проверить, уязвима ли моя система?

Выполните команду uname -r для проверки версии ядра. Ядра, выпущенные до 13 мая 2026 года, уязвимы. Для проверки наличия патча в вашем дистрибутиве: на Debian/Ubuntu — apt changelog linux-image-$(uname -r) | head -20, на RHEL/CentOS — rpm -q --changelog kernel | head -20. Если в changelog есть упоминание CVE-2026-46300 или Fragnasia — патч применён.

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

Да. Исследователь William Bowling опубликовал proof-of-concept эксплойт одновременно с раскрытием уязвимости 13 мая 2026 года. Именно поэтому обновление ядра или временная митигация критически важны прямо сейчас.

5
Чем Fragnasia отличается от Dirty Frag?

Dirty Frag объединяет два CVE (CVE-2026-43284 и CVE-2026-43500) — это цепочка из двух отдельных багов в том же XFRM-коде для достижения LPE. Fragnasia — самостоятельный баг, не требующий состояния гонки. Mitigation (выгрузка esp4/esp6/rxrpc) одинаковый, но патчи разные.

6
Что делать, если нельзя сразу обновить ядро?

Выгрузите уязвимые модули ядра: rmmod esp4 esp6 rxrpc. Затем запретите их автоматическую загрузку через /etc/modprobe.d/dirtyfrag.conf. Учтите, что это отключит IPsec VPN и AFS.

Итого

Fragnasia — третья за месяц серьёзная уязвимость повышения привилегий в ядре Linux, и первая в новом классе Dirty Frag с публичным PoC без состояния гонки. Обновите ядро в первую очередь на серверах с доступом нескольких пользователей, в контейнерных окружениях (если namespace-изоляции недостаточно) и там, где уже применялась митигация для Copy Fail.

Подробнее — в материале BleepingComputer. База уязвимостей NVD: CVE-2026-46300 на NIST.