TGViewer
Whitehat Lab Whitehat Lab @wh_lab · 3.46K subscribers
Post #665 1.34K

Forwarded from Blue (h/c)at Café

🧠 Помните Copy Fail? Так вот, нашли ещё два способа делать то же самое

Неделю назад я писал про CVE-2026-31431 - 732 байта Python и ты root. Баг в крипто-подсистеме ядра, через splice() и page cache. Казалось бы - ну нашли, ну пропатчили, живём дальше

А вчера V4bel выкатил DirtyFrag. Два новых бага того же класса. Тот же принцип - через splice() загоняем страницы файла в ядерную криптографию, ядро расшифровывает "на месте" и перезаписывает содержимое прямо в page cache. Только теперь не через AF_ALG, а через два других модуля - ESP (IPsec) и RxRPC

👀 Два пути к root. Выбирай какой нравится

Первый - через ESP. Создаём XFRM-ассоциацию с UDP-инкапсуляцией, засовываем страницы /usr/bin/su в пайплайн через splice(), ядро делает in-place расшифровку и пишет 4 байта куда мы скажем. Повторяем - записываем 192-байтный шеллкод поверх su. Запускаем su - получаем root. Звучит знакомо? Это буквально тот же паттерн, что и Copy Fail, только через другую подсистему. Баг в ядре с января 2017 года

Второй - через RxRPC, и вот тут красиво. Вместо перезаписи бинарника - патчим /etc/passwd. Создаём rxkad-токен с нужным ключом шифрования, ядро через rxkad_verify_packet_1() делает pcbc(fcrypt) расшифровку прямо по странице файла. Три splice-операции с перекрытием - и строка root:x:0:0: превращается в root::0:0:. Пустой пароль. su root, Enter, всё. Причём нужный ключ шифрования подбирается в юзерспейсе - полностью офлайн, без единого обращения к ядру. Один детерминированный триггер в конце. Этот баг с июня 2023 года

Ни одной гонки. Ни одного race condition. Детерминированная логика - настроил параметры, дёрнул расшифровку, page cache перезаписан. Если что-то пошло не так - ядро не падает, можно повторить

Проверено на Ubuntu 24.04, RHEL 10.1, openSUSE Tumbleweed, CentOS Stream 10, AlmaLinux 10, Fedora 44. Компилируется одной строкой:


gcc -O0 -Wall -o exp exp.c -lutil


И вот тут начинается самое интересное - CVE нет. Патча нет. Ни для одного дистрибутива. Потому что кто-то сломал эмбарго до того, как вендоры успели выкатить фиксы. Исследователь связался с linux-distros@openwall, те попросили опубликовать - и он опубликовал. Полный исходник, компиляция, запуск. На момент публикации - zero-day в чистом виде

Что мы имеем. Dirty Pipe в 2022 - page cache через пайпы. Copy Fail неделю назад - page cache через AF_ALG. DirtyFrag вчера - page cache через ESP и RxRPC. Три разных подсистемы, один и тот же баг-класс. Ядро Linux полно мест, где криптооперации делаются «на месте» по данным из splice(). Каждое такое место - потенциальная запись в page cache. Сколько ещё таких мест в ядре - вопрос открытый. Подозреваю - не мало 👀


Митигация прямо сейчас (патча-то нет):


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


Что может сломаться - ESP модули нужны для IPsec VPN. Если у вас site-to-site IPsec или strongSwan - подумайте дважды. RxRPC на Ubuntu загружен по умолчанию, но реально его использует только AFS (Andrew File System). Если у вас нет AFS - смело отключайте

Три года, девять лет. Два бага лежали рядом и ждали. Один исследователь, один эксплойт, один claude, все дистрибутивы. И на момент публикации - ни одного патча. Вот вам и координированное раскрытие
  • 🔥 5
  • 👍 1
More from @wh_lab
  1. Oct 11, 2026📣 Интересное за эту неделю ⚙ Damn Vulnerable Model Context Protocol (DVMCP) 🥰 Anthropic…
  2. Oct 11, 2026SOLAR CTF уже через неделю! ☀ 17 октября стартуют первые студенческие соревнования по кибе…
  3. Oct 10, 2026💻 Winbindex Это открытый индекс бинарных файлов Windows (в первую очередь .exe, .dll и .s…
  4. Oct 10, 2026📣 Сделали с товарищами папку ⭐️ ИБэшечка 🛡️ Собрались вместе с другими авторами про ИБ,…
  5. Oct 9, 2026💬 Telegram Desktop: one-click account takeover via IPC injection ⚠️ Срочно обновите свой…
  6. Oct 9, 2026🧙 Hex-Rays IDA MCP v20261008.0.1 Раз уж зашла речь про MCP, то есть хорошая новость для р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →