
Эксплойт для повышения привилегий в ядре Linux, объединяющий две уязвимости записи в page-cache (CVE-2026-43284, CVE-2026-43500) для детерминированного получения root-доступа на основных дистрибутивах без состояний гонки.

В этом документе описывается класс уязвимости Dirty Frag, впервые обнаруженный и описанный Hyunwoo Kim (@v4bel), который может получить привилегии root на основных дистрибутивах Linux путем объединения уязвимости xfrm-ESP Page-Cache Write (CVE-2026-43284) и уязвимости RxRPC Page-Cache Write (CVE-2026-43500).
Dirty Frag — это случай, расширяющий класс ошибок, к которому относятся Dirty Pipe и Copy Fail. Поскольку это детерминированная логическая ошибка, не зависящая от временного окна, не требуется состояния гонки, ядро не паникует при сбое эксплойта, а процент успеха очень высок.
Подробную техническую информацию и хронологию см. здесь.
xfrm-ESP Page-Cache Write (CVE-2026-43284) был исправлен в mainline f4c50a4034e6.RxRPC Page-Cache Write (CVE-2026-43500) был исправлен в mainline aa54b1d27fe0.[!NOTE] На момент первой публикации этого документа (2026-05-07) эмбарго было нарушено из-за внешних факторов, поэтому патча или CVE еще не существовало. После консультации с мейнтейнерами в [email protected] на тот момент, документ Dirty Frag был опубликован по их запросу. За хронологией раскрытия обращайтесь к техническим деталям.
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
Этот PoC предоставляется как точная информация после консультации с linux-distros. Не используйте его на системах, которые вы не авторизованы тестировать.
⚠️ Важно: После запуска этого эксплойта кэш страниц загрязнен. Чтобы очистить загрязненный кэш страниц и обеспечить стабильность системы, выполните:
echo 3 > /proc/sys/vm/drop_caches
или перезагрузите систему.
Иными словами, время жизни уязвимостей составляет около 9 лет.
Этот Dirty Frag был протестирован на следующих версиях дистрибутивов.
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true"
xfrm-ESP Page-Cache Write предоставляет мощный примитив произвольной записи 4 байт (STORE), как и Copy Fail, и включен в большинство дистрибутивов, но требует привилегий для создания пространства имен.
Ubuntu иногда блокирует создание непривилегированных пользовательских пространств имен через политику AppArmor. В такой среде xfrm-ESP Page-Cache Write не может быть запущен. RxRPC Page-Cache Write не требует привилегий для создания пространства имен, но сам модуль rxrpc.ko не включен в большинство дистрибутивов. Однако на Ubuntu модуль rxrpc.ko загружается по умолчанию.
Объединение двух вариантов позволяет закрыть слепые зоны друг друга, что дает возможность получить привилегии root на всех основных дистрибутивах. Подробности см. в документе с техническими деталями.
Да-да, я знаю. Однако эта уязвимость является потомком «Dirty Pipe», и это класс ошибок, который «загрязняет» член frag структуры struct sk_buff, поэтому это название наиболее подходящее.
Copy Fail послужил мотивацией для начала этого исследования. В частности, xfrm-ESP Page-Cache Write в цепочке уязвимостей Dirty Frag использует тот же сток (sink), что и Copy Fail. Однако он запускается независимо от доступности модуля algif_aead. Другими словами, даже на системах, где применяется общеизвестное смягчение Copy Fail (черный список algif_aead), ваш Linux все еще уязвим к Dirty Frag.
Обратитесь к разделу «Смягчение» выше.