
CVE-2026-43284/CVE-2026-43500 'DirtyFrag' — скрипт обнаружения безвредных патчей и мер смягчения
TL;DR: Есть две новые ошибки в ядре Linux. Этот скрипт сообщает, уязвимы ли вы. Патчите свои системы.
7 мая 2026 года класс уязвимостей под названием Dirty Frag был публично раскрыт исследователем безопасности Хёну Кимом (@v4bel) — досрочно, после того как нарушение эмбарго вынудило его действовать до готовности патчей.
Она позволяет любому непривилегированному локальному пользователю получить root. Никаких гонок. Никаких временных окон. Высокая надёжность.
Затронуты две подсистемы:
| CVE | Подсистема | Модули | Появилась | Исправлена (upstream) |
|---|
| CVE-2026-43284 | IPsec ESP | esp4, esp6 | Янв 2017 (cac2661c53f3) | 7 мая 2026 (f4c50a4034e6) |
| CVE-2026-43500 | RxRPC | rxrpc | Июн 2023 (2dc334f1a63a) | 10 мая 2026 (aa54b1d27fe0) |
Ни одна из ошибок по отдельности не является полностью надёжной — путь через ESP требует возможности создания пользовательского пространства имён (которое блокирует AppArmor в Ubuntu), а путь через RxRPC требует загрузки rxrpc.ko (чего большинство дистрибутивов по умолчанию не делают). Вместе они закрывают слепые зоны друг друга, делая цепочку работоспособной практически на всех крупных дистрибутивах.
Существует публичный proof-of-concept. Считайте, что он уже активно используется.
Он проверяет вашу систему на условия, делающие эксплуатацию возможной, и сообщает конкретно, почему вы уязвимы — а не просто «да» или «нет».
| Проверка | Что ищет |
|---|---|
| Версия ядра | Попадает ли это ядро в один из затронутых диапазонов? |
| Патч — CVE-2026-43284 | Есть ли исправление esp4/esp6 (f4c50a4034e6) в вашем пакете ядра? |
| Патч — CVE-2026-43500 | Бэкпортировал ли ваш дистрибутив исправление rxrpc (aa54b1d27fe0)? |
Модуль esp4 | Загружен, загружаем или в чёрном списке? |
Модуль esp6 | Загружен, загружаем или в чёрном списке? |
Модуль rxrpc | Загружен, загружаем или в чёрном списке? |
| XFRM netlink-сокет | Может ли непривилегированный пользователь открыть его прямо сейчас? |
| AF_RXRPC-сокет | Может ли непривилегированный пользователь открыть его прямо сейчас? |
| Средства смягчения | AppArmor, SELinux, непривилегированные пользовательские пространства имён, файл чёрного списка |
Он ничего не исправляет. Он ничего не эксплуатирует. Он просто сообщает правду о вашей системе.
python3 dirty_frag_detect.py
Вот и всё. Цветной вывод, конкретные причины для каждого результата и сводка по устранению в конце.
[
]
Настоящее исправление — это патч вашего ядра. Проверьте бюллетени безопасности вашего дистрибутива:
| Дистрибутив | Где смотреть |
|---|---|
| Ubuntu / Debian | sudo apt-get update && sudo apt-get dist-upgrade |
| RHEL / AlmaLinux / Rocky | sudo dnf update kernel |
| Arch | sudo pacman -Syu linux |
| CloudLinux | Бюллетень CloudLinux |
Пока вы ждёте (или если патчи для вашего дистрибутива ещё недоступны), добавьте уязвимые модули в чёрный список:
sudo 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"
⚠️ Прежде чем это делать:
- Добавление
esp4/esp6в чёрный список сломает IPsec-туннели (strongSwan, Libreswan; WireGuard не затрагивается). Не применяйте это на VPN-шлюзах.- Добавление
rxrpcв чёрный список сломает клиентов распределённой файловой системы AFS. Почти никто этим не пользуется — но сначала проверьте.
Важно: если ваша система могла быть атакована до применения мер смягчения, эксплойт может модифицировать бинарные файлы в page cache, не касаясь диска. Инструменты контроля целостности файлов (Tripwire, AIDE), проверяющие контрольные суммы на диске, не увидят ничего подозрительного. Перезагрузка очищает page cache и восстанавливает состояние на диске.
Обе ошибки находятся в быстрых путях дешифрования на месте в ядре. Когда сокетный буфер содержит страничные фрагменты, не принадлежащие ядру на правах частной собственности — например, страницы pipe, присоединённые через splice() или sendfile() — пути приёма ESP и RxRPC дешифруют напрямую поверх этих внешне поддерживаемых страниц, вместо того чтобы сначала копировать.
Атакующий может направить страницу из кэша /usr/bin/su (или любого другого читаемого файла) в один из этих путей дешифрования, используя свой собственный ключ, чтобы «расшифрованный вывод» был любыми байтами по его выбору. Ядро записывает эти байты прямо в кэшированную в памяти копию su. Файл на диске не затрагивается. Ядро никогда не помечает страницу как «грязную».
С этого момента каждый процесс, выполняющий su, запускает версию атакующего — до drop_caches или перезагрузки.
Вариант ESP (cac2661c53f3) и вариант RxRPC (2dc334f1a63a) используют один и тот же приёмник, но имеют разные предварительные условия, которые взаимно компенсируются, делая цепочку надёжной во всех основных конфигурациях.
Полное техническое описание см. в V4bel/dirtyfrag.
| Дата | Событие |
|---|---|
| 2026-04-30 | Сообщено команде безопасности ядра Linux |
| 2026-05-07 | Эмбарго нарушено третьей стороной; Хёну Ким публикует досрочно |
| 2026-05-07 | Опубликован публичный PoC; присвоен CVE-2026-43284 |
| 2026-05-07 | Исправление CVE-2026-43284 (f4c50a4034e6) объединено в netdev/net.git |
| 2026-05-08 | Зарезервирован CVE-2026-43500; дистрибутивы начинают выпускать пропатченные ядра для CVE-2026-43284 |
| 2026-05-10 | Исправление CVE-2026-43500 (aa54b1d27fe0) объединено в mainline |
| 2026-05-11 | Бэкпорты для CVE-2026-43500 в дистрибутивах в процессе |
Авторство: Хёну Ким (@v4bel) за оригинальное исследование, раскрытие и PoC.
Только обнаружение. Применяйте к системам, на проверку которых у вас есть разрешение.