Критическая брешь Dirty Frag даёт возможность любому локальному пользователю получить привилегии администратора на большинстве популярных дистрибутивов Linux, выпускаемых с 2017 года, среди которых Ubuntu, Arch, RHEL, Fedora, а также подсистема WSL2 в Windows 11. На текущий момент отсутствует какое-либо исправление — ни в одном дистрибутиве, ни в основной ветке ядра Linux.
Источник изображения: Sasun Bughdaryan / unsplash.com
Dirty Frag функционирует по схожему принципу с недавней уязвимостью Copy Fail. Атака не зависит от конфигурации системы и не требует точного выбора момента для выполнения — это простая логическая ошибка в операционной системе. Достаточно запустить небольшую программу, и обычный пользователь получает права администратора. Под удар попадают актуальные версии Ubuntu (24 и 26), Arch, RHEL, OpenSUSE, CentOS Stream, Fedora, Alma и другие сборки Linux.
В отличие от уязвимости Copy Fail, для которой уже выпущены патчи, Dirty Frag остаётся без исправлений, включая основную ветку ядра Linux. Издание Tom's Hardware сообщило, что взлом успешно сработал на CachyOS с ядром 7.0.3-1-cachyos и на обновлённой системе Arch. Однако защититься достаточно просто: нужно отключить три компонента ядра — esp4, esp6 и rxrpc. Все они отвечают за шифрование сетевого трафика по протоколу IPSec и требуются только машинам, работающим в корпоративных VPN-сетях, поэтому для большинства рабочих станций и серверов их отключение останется незамеченным.
О проблеме сообщили команде разработчиков ядра Linux ещё 30 апреля, однако некая третья сторона нарушила договорённость и раскрыла уязвимость раньше срока. Tom's Hardware считает, что уязвимость уже активно эксплуатируется злоумышленниками, что и вызвало преждевременную публикацию информации о ней в интернете.
С технической точки зрения, Dirty Frag, как и Copy Fail, эксплуатирует механизм нулевого копирования в ядре Linux: злоумышленник внедряет дескриптор страничного кеша в операцию splice, что даёт возможность записывать данные в файлы, доступные только для чтения обычным пользователям, и таким образом повышать свои привилегии до администраторских. Уязвимый код расположен в модулях, отвечающих за шифрование сетевого трафика IPSec. Изначальная ошибка xfrm-ESP Page Cache Write была внесена в коммите cac2661c53f3 в 2017 году. Поскольку встроенный механизм защиты AppArmor в Ubuntu блокирует именно эту первую уязвимость, демонстрационный код (PoC) дополнительно использует вторую — RxRPC Page-Cache Write из коммита 2dc334f1a63a.