
Скрипт аудита для CVE-2026-43284 + CVE-2026-43500 "Dirty Frag"
Скрипт аудита для CVE-2026-43284 + CVE-2026-43500 "Dirty Frag" — цепочки уязвимостей локального повышения привилегий в ядре Linux, раскрытой 2026-05-07 вместе с рабочим публичным эксплойтом, ещё до появления патчей в дистрибутивах.
Также известна как "Copy Fail 2: Electric Boogaloo" — те же пути в коде, другой автор эксплойта.
Dirty Frag объединяет в цепочку две отдельные ошибки ядра, обнаруженные Hyunwoo Kim (@v4bel), каждая из которых относится к одному и тому же классу уязвимостей — расшифровка на месте поверх страничных буферов, не принадлежащих исключительно ядру.
AF_INET / AF_INET6 socket (IPsec ESP)
└── In-place decryption path (commit cac2661c53f3, Jan 2017)
└── splice() feeds page cache pages as destination buffers
└── Plaintext write at attacker-controlled offset in page cache
└── Target SUID binary in memory → root
esp4, esp6f4c50a4034e6AF_RXRPC socket (Andrew File System / RxRPC protocol)
└── Same in-place pattern added to rxrpc (June 2023)
└── Same page-cache write primitive
└── root
rxrpcaa54b1d27fe0| Свойство | Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|---|---|---|---|
| Состояние гонки | ✅ Требуется | ❌ Нет | ❌ Нет | ❌ Нет |
| Гранулярность записи | Произвольная | 1 байт с выравниванием | 4 байта фиксированно | Полный открытый текст, любое смещение |
| Изменение диска | ✅ | ❌ | ❌ | ❌ |
| Криминалистический след | ✅ | ❌ | ❌ | ❌ |
| Побег из контейнера | Ограничен | Ограничен | Возможен | Да (общий page cache) |
| Публичный эксплойт | ✅ | ✅ | ✅ | ✅ до патчей |
| Векторы атаки | 1 | 1 | 1 | 2 (esp + rxrpc) |
| Диапазон версий ядра | Статус |
|---|---|
| < 4.14 | ✅ Не затронуто |
| 4.14 – последняя неисправленная | ❌ Уязвимо |
mainline с f4c50a4034e6 | ✅ Исправлено |
| Диапазон версий ядра | Статус |
|---|---|
| < 6.4 | ✅ Не затронуто (паттерн ещё не появился) |
| 6.4 – последняя неисправленная | ❌ Уязвимо |
mainline с aa54b1d27fe0 | ✅ Исправлено |
| Дистрибутив | CVE-2026-43284 | CVE-2026-43500 | Исправленная версия |
|---|---|---|---|
| AlmaLinux / RHEL 8 | ❌ Затронуто | ✅ Не поставляется | kernel-4.18.0-553.123.2.el8_10 |
| AlmaLinux / RHEL 9 | ❌ Затронуто | ⚠ Только если установлен kernel-modules-partner (репозиторий Devel) | через dnf upgrade |
| AlmaLinux / RHEL 10 | ❌ Затронуто | ❌ Затронуто | через dnf upgrade |
| Ubuntu 20.04–24.04 | ❌ Затронуто | ⚠ Зависит от ядра | через apt dist-upgrade |
| Debian stable | ❌ Затронуто | ⚠ Зависит от ядра | Исправление только в sid (linux ≥ 7.0.4-1) |
| SUSE / openSUSE | ❌ Затронуто | ❌ Затронуто | через zypper update kernel-default |
| Arch Linux | ❌ Затронуто | ❌ Затронуто | через pacman -Syu linux |
git clone https://github.com/Quaerendir/dirtyfrag-audit
cd dirtyfrag-audit
chmod +x audit_dirtyfrag.sh
./audit_dirtyfrag.sh
Удалённая однострочная команда (проверьте перед запуском в продакшене):
curl -fsSL https://raw.githubusercontent.com/Quaerendir/dirtyfrag-audit/main/audit_dirtyfrag.sh | bash
| Код | Значение |
|---|---|
0 | Безопасно — ни одна из CVE не применима |
1 | Уязвимо — как минимум одна CVE активна без смягчения |
2 | Смягчено — обходной путь активен, патч всё ещё требуется |
| Проверка | CVE |
|---|---|
| Диапазон версий ядра (4.14+ для ESP, 6.4+ для rxrpc) | Обе |
| Исправленные версии ядра для конкретных дистрибутивов | Обе |
Загружен модуль esp4 / esp6 (lsmod) | CVE-2026-43284 |
Загружен модуль rxrpc (lsmod) | CVE-2026-43500 |
| Обнаружение встроенного модуля vs загружаемого | Обе |
Правила чёрного списка modprobe.d (для каждого модуля) | Обе |
| Состояние/политика IPsec XFRM — активные сессии, которые будут нарушены | CVE-2026-43284 |
| Использование модуля kAFS / AFS — активные потребители rxrpc | CVE-2026-43500 |
| Статус live-патча KernelCare | Обе |
Доступность /proc/sys/vm/drop_caches | Обе |
| Контекст контейнера / Docker / Kubernetes | Обе |
| Активные вошедшие пользователи (риск мультитенантности) | Обе |
| Статус SELinux / AppArmor | Обе |
| Обнаружение интерфейсов IPsec/VTI/XFRM | CVE-2026-43284 |
# RHEL / AlmaLinux
dnf clean metadata && dnf upgrade && reboot
# Ubuntu / Debian
apt-get update && apt-get dist-upgrade && reboot
# SUSE
zypper update kernel-default && reboot
# Arch
pacman -Syu linux && reboot
Сначала проверьте на активное использование:
ip xfrm state # IPsec — if output non-empty, blacklisting breaks IPsec
lsmod | grep kafs # AFS — if loaded, rxrpc is in use
Применить обходной путь:
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 || true
# IMPORTANT: flush page cache to evict any poisoned pages
echo 3 > /proc/sys/vm/drop_caches
kcarectl --update
kcarectl --patch-info | grep -iE 'CVE-2026-43284|CVE-2026-43500|dirtyfrag'
dm-crypt / LUKS · WireGuard · OpenVPN · SSH · TLS/kTLS · OpenSSL · GnuTLS
Демоны IKE (strongSwan, libreswan) продолжают работать — отключена только обработка пакетов ESP в ядре.
MIT — см. LICENSE
Quaerendir / Kostur IT SERVICES