КИБЕРБЕЗОПАСНОСТЬ

Fragnesia в Linux: новый путь к root уже с рабочим эксплойтом

CVE-2026-46300 позволяет локальному пользователю получить root в Linux: опубликован рабочий эксплойт, а патчи для дистрибутивов еще готовятся.

✍️ Редакция iTech News | 14.05.2026 | ⏱ 4 мин | 👁 2 | Источник: Habr / Новости
💀

Новая уязвимость Fragnesia в Linux, зарегистрированная как CVE-2026-46300, позволяет непривилегированному локальному пользователю получить права root, причем рабочий эксплойт уже выложен в открытый доступ. Для администраторов, DevOps-команд и тех, кто держит прод на Linux, это не академическая история про «теоретически возможно», а вполне прикладной кейс: если в системе доступны user namespace, повышать привилегии можно без экзотики и без долгих танцев.

О проблеме сообщает Habr / Новости со ссылкой на OpenNET и материалы исследователей по ИБ. Fragnesia уже неофициально называют Copy Fail 3.0, потому что по механике она продолжает серию недавних LPE-уязвимостей в Linux, в которую до этого вошли Copy Fail, Copy Fail 2: Electric Boogaloo и Dirty Frag. Сценарий знакомый и потому неприятный: локальный пользователь без привилегий добирается до root через ошибку в ядре, а защититься «само как-нибудь» здесь не получится.

Технически уязвимость Fragnesia связана с подсистемой xfrm, а точнее с реализацией инкапсуляции ESP в TCP, то есть ESP-in-TCP из RFC 8229. Этот механизм используется для туннелирования IPsec-трафика поверх TCP. Ошибка возникла из-за логики работы с данными в страничном кэше: ради уменьшения лишней буферизации операции с AES-GCM выполнялись по месту, через XOR прямо над данными page cache. В результате появилась возможность перезаписать один байт в страничном кэше по выбранному смещению. Один байт звучит не драматично, пока не вспоминаешь, что повторением операции байт за байтом можно собрать нужную модификацию практически любого файла, уже попавшего в кэш.

Дальше начинается та часть, из-за которой слово «рабочий эксплойт» выглядит особенно бодро. Исследователи показали сценарий, в котором меняются первые 192 байта файла /usr/bin/su в страничном кэше: вместо штатного содержимого туда подставляется код для запуска /usr/bin/sh. После этого запуск su приводит к тому, что система берет не оригинальный файл с диска, а подмененную копию из page cache. На бумаге это выглядит как тонкая работа с внутренностями ядра, на практике же смысл простой: исполняемый SUID-root бинарник превращается в точку входа к root-доступу.

Отдельно неприятно то, что Fragnesia не живет где-то в древнем экзотическом коде, который никто не трогает. По данным исследователей, уязвимость проявляется в ядрах Linux, выпущенных после 5 мая, и была случайно активирована исправлением для Dirty Frag. То есть одна заплатка открыла дверь для другой проблемы в той же зоне xfrm-ESP, но уже с иным дефектом и, соответственно, с необходимостью отдельного исправления. Первая версия патча для Fragnesia уже предлагалась, однако ее анализ показал, что она не закрывает проблему полностью. После этого появился второй вариант исправления. Для команд, которые привыкли ставить security-апдейты по мере выхода и выдыхать, тут плохая новость: цепочка «нашли баг — выпустили патч — закрыли тему» пока не завершилась.

Есть и важные условия эксплуатации. Для использования Fragnesia в системе должно быть разрешено создание пространств имен идентификаторов пользователей, то есть user namespace. В Ubuntu, как указано в источнике, такая операция по умолчанию запрещена, но может быть включена через kernel.apparmor_restrict_unprivileged_userns=0 или профили AppArmor. В других дистрибутивах многое упирается в параметр kernel.unprivileged_userns_clone: если там стоит 0, непривилегированным пользователям user namespace недоступны. Это важный нюанс для оценки риска. Формально уязвимость локальная, но в реальной инфраструктуре локальный доступ часто появляется не только у «живого пользователя за клавиатурой», а, например, у скомпрометированного сервиса, CI-джобы, контейнера с неудачно выданными правами или подрядчика с shell-доступом на хост.

Отсюда и практический вывод для бизнеса, который куда менее драматичен, чем заголовки про «root в один клик», но куда полезнее. Если у вас Linux-хосты используются как база для shared-сред, bastion-серверов, контейнерных узлов или внутренних платформ разработки, уязвимость Fragnesia надо рассматривать как реальный путь горизонтального и вертикального перемещения атакующего. Даже если поверхность атаки кажется узкой, наличие готового эксплойта резко снижает порог входа. Не обязательно быть исследователем ядра, чтобы повторить чужую работу, когда она уже оформлена и опубликована.

На момент публикации обновления ядра и дистрибутивных пакетов с исправлением еще не вышли. Поэтому временная защита выглядит прозаично: блокировать загрузку модулей ядра esp4 и esp6, а уже загруженные модули выгружать. Источник приводит конкретный обходной вариант через конфигурацию в /etc/modprobe.d/dirtyfrag.conf и вызов rmmod. Это не универсальная таблетка и не всегда безболезненная мера, особенно если функции IPsec/ESP вам действительно нужны. Но когда патчи еще в дороге, а эксплойт уже на столе, у администраторов обычно не так много элегантных опций.

Серия Copy Fail, Dirty Frag и теперь Fragnesia показывает неприятную вещь: ошибки вокруг page cache и сетевых подсистем ядра превращаются в повторяемый класс проблем, а не в разовый сбой, который можно списать на неудачный коммит. Для Linux-экосистемы это означает простой, но неудобный вывод: безопасная конфигурация user namespace и дисциплина вокруг обновлений ядра снова становятся не «рекомендацией из hardening-гайда», а вопросом, который напрямую влияет на то, сколько времени пройдет между локальным доступом и root.

Поделиться: Telegram X LinkedIn