Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-43284-DirtyFrag-PoC — Доказательство концепции для CVE-2026-43284 — 4-байтовый примитив записи в кеш страниц XFRM/ESP для исправления setuid-бинарного файла (x86_64, пространства имен пользователей). Включает проверку ядра (kernel preflight) и сканирование SUID. | Kitploit
Инструменты/GitHubGitHub/jayhutajulu1/cve-2026-43284-dirtyfrag-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubjayhutajulu1/cve-2026-43284-dirtyfrag-poc

CVE-2026-43284-DirtyFrag-PoC

Доказательство концепции для CVE-2026-43284 — 4-байтовый примитив записи в кеш страниц XFRM/ESP для исправления setuid-бинарного файла (x86_64, пространства имен пользователей). Включает проверку ядра (kernel preflight) и сканирование SUID.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
121 месяц назадЕщё не проверено

CVE-2026-43284 — 4-байтный XFRM/ESP

CVE Platform Type Status

Proof-of-concept локальное повышение привилегий через повреждение кэша страниц XFRM/ESP
4-байтовый примитив записи · 48 итераций · 192-байтовое перезапись ELF · непривилегированный пользователь + netns


Доказательство концепции

Preflight checks and exploit phases on WSL2 Ubuntu 24.04 Successful root shell with uid=0 verification

Слева: предварительная проверка ядра, сканирование setuid и цепочка эксплойта  ·  Справа: получена оболочка root — id / whoami подтверждают uid=0(root)
Протестировано на WSL2 · Ubuntu 24.04.1 LTS · ядро 6.6.87.2-microsoft-standard-WSL2


root@kitploit:~
  ╔═══════════════════════════════════════╗
  ║  SLEY - CVE-2026-43284 dirtyfrag PoC  ║
  ╚═══════════════════════════════════════╝

Отказ от ответственности: Только для авторизованных исследований безопасности, обучения и тестирования на системах, которые вам принадлежат или на которые у вас есть явное разрешение. Авторы не несут ответственности за неправомерное использование.


Обзор

Работает даже в случае, если algif_aead находится в чёрном списке — эксплойт напрямую использует код ядра XFRM/ESP.


Особенности

Встроенные проверки перед использованием эксплойта:

  1. Конфигурация ядра — проверяет CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP
    (читает /boot/config-*, /lib/modules/*/config или /proc/config.gz на WSL2)
  2. Сканирование setuid — выводит список SUID-бинарников в системе (find / -perm -4000)
  3. Эксплойт — модифицирует кэш страниц, запускает оболочку root через PTY, восстанавливает цель при выходе

Требования

Параметры ядра

root@kitploit:~
CONFIG_USER_NS=y
CONFIG_XFRM=y
CONFIG_INET_ESP=m   # или =y

Быстрая проверка:

root@kitploit:~
# физическая машина / VM
grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS=' /boot/config-$(uname -r)

# WSL2
zcat /proc/config.gz | grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS='

Прочее

  • Ядро Linux уязвимо для CVE-2026-43284 (см. Статус исправления)
  • gcc, libc, libutil (для forkpty)
  • Читаемый setuid целевой бинарник (по умолчанию: /usr/bin/su)

Сборка

root@kitploit:~
git clone https://github.com/jayhutajulu1/CVE-2026-43284.git
cd CVE-2026-43284
make

Или вручную:

root@kitploit:~
gcc -O0 -Wall -o sley-dirtyfrag sley-dirtyfrag.c -lutil

-O0 используется намеренно — оптимизация может нарушить чувствительное к времени поведение splice/UDP.


Использование

1. Убедитесь, что вы не привилегированы

root@kitploit:~
id
# uid=1000(youruser) gid=1000(youruser) groups=...

2. Запустите эксплойт

root@kitploit:~
./sley-dirtyfrag                  # цель по умолчанию: /usr/bin/su
./sley-dirtyfrag /usr/bin/passwd  # другой setuid бинарник

Инструмент выполняет три автоматических этапа:

Этап

3. Проверка доступа root

В полученной оболочке:

root@kitploit:~
id
# uid=0(root) gid=0(root) groups=0(root)

whoami
# root

4. Выход для восстановления

Нажмите Ctrl+D или введите exit. PoC сбрасывает кэш страниц, чтобы исходный бинарник на диске автоматически восстановился.

Если восстановление не удалось:

root@kitploit:~
echo 3 | sudo tee /proc/sys/vm/drop_caches

Справка по командам

Пример вывода

root@kitploit:~
┌─[ этап 1] предварительная проверка конфигурации ядра
  → /proc/config.gz
  [+] CONFIG_USER_NS        = y  (требуется =y)
  [+] CONFIG_XFRM           = y  (требуется =y)
  [+] CONFIG_INET_ESP       = m  (требуется =m или =y)
  параметры ядра OK.

┌─[ этап 2] сканирование setuid бинарников
  10 /usr/bin/su  ← цель
  найдено 14 setuid бинарников.

┌─[ этап 3] эксплойт
  [*] unshare userns+netns, регистрация 48 XFRM SA, splice→UDP 4500...
  [+] corrupt               все итерации выполнены
  [+] verify                обнаружена модификация ELF

  ╔══════════════════════════════════════╗
  ║  оболочка root — выход для восстановления ║
  ╚══════════════════════════════════════╝

Смягчение

Применить исправление ядра (рекомендуется)

Исправлено вf4c50a4034e6 (основная ветка, 8 мая 2026)
Введеноcac2661c53f3 (январь 2017)

Действие: Обновитесь до дистрибутивного ядра, содержащего исправление, или соберите из исправленной основной ветки.

root@kitploit:~
# проверьте ваше работающее ядро
uname -r

# проверьте наличие исправления (пример – измените для вашего дистрибутива)
# apt update && apt install --only-upgrade linux-image-$(uname -r)

Варианты усиления защиты (эшелонированная оборона)

Ограничение непривилегированных пользовательских пространств имён

Этот эксплойт использует unshare(CLONE_NEWUSER | CLONE_NEWNET) без прав root.

root@kitploit:~
# runtime (может не существовать во всех ядрах)
sysctl kernel.unprivileged_userns_clone=0

# или отключить при сборке ядра
# CONFIG_USER_NS is not set

Примечание: Отключение пользовательских пространств имён блокирует этот PoC, но не обязательно CVE-2026-43500 (вариант с rxrpc для систем без userns).

Аудит setuid бинарников

root@kitploit:~
find / -perm -4000 -type f 2>/dev/null
# удалите или усилите ненужные бинарники

Сброс кэша после подозрительной компрометации

Если вы считаете, что setuid бинарник был изменён в памяти:

root@kitploit:~
echo 3 | sudo tee /proc/sys/vm/drop_caches
# повторно проверьте целостность бинарника через менеджер пакетов / известный хеш

Как это работает

  1. unshare(CLONE_NEWUSER | CLONE_NEWNET) — изолированное пространство имён пользователя/сети (root не требуется).
  2. Регистрация 48 ассоциаций безопасности XFRM — байты shellcode закодированы в ESN seq_hi (4 байта на SA).
  3. Активация через UDP порт 4500 с UDP_ENCAP_ESPINUDP:
    • splice() считывает целевой файл в канал (pipe)
    • splice() перемещает данные из канала → UDP сокет
    • Страница кэша страниц попадает в scatter-gather список ESP через путь skip_cow
    • authencesn scatterwalk записывает seq_hi по адресу assoclen + cryptlen
  4. HMAC не совпадает — однако запись в кэш страниц сохраняется.
  5. Выполнение модифицированного setuid бинарника — минимальный ELF выполняет setuid(0) / setgid(0) / .

Протестированные среды

СредаЯдро
WSL2 Ubuntu 24.04.1 LTS6.6.87.2-microsoft-standard-WSL2
Ubuntu 24.04уязвимые сборки
Fedora 44уязвимые сборки

Связанные работы

  • CVE-2026-43500 — вариант с rxrpc для систем без пользовательских пространств имён; нацелен на /etc/passwd с 8-байтовым примитивом перебора pcbc(fcrypt). В данный репозиторий не включён.

Файлы


Лицензия

Предоставляется как есть для исследований и обучения. Используйте ответственно.


Автор

SLEY — CVE-2026-43284 dirtyfrag PoC

Если это помогло вашим исследованиям, рассмотрите возможность отметить репозиторий звездой.

Скачать инструмент
CVECVE-2026-43284
ТипЛокальное повышение привилегий (LPE)
ВекторПовреждение кэша страниц XFRM / ESP-UDP (UDP_ENCAP_ESPINUDP)
Примитив4 байта за итерацию (ESN seq_hi)
Полезная нагрузка192-байтовый ELF для x86_64 (setuid(0) + setgid(0) + execve("/bin/sh"))
Цель по умолчанию/usr/bin/su
АрхитектураТолько x86_64
Требуемые привилегииНепривилегированный пользователь (использует пространства имён пользователя и сети)
Что делает
1Предварительная проверка конфигурации ядра (CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP)
2Полное сканирование setuid-бинарников в системе; выделение цели по умолчанию
3Резервное копирование цели → модификация кэша страниц (48× 4-байтовых записей) → запуск оболочки root
КомандаОписание
./sley-dirtyfragЭксплойт для /usr/bin/su (по умолчанию)
./sley-dirtyfrag /path/to/suidЭксплойт для произвольного setuid бинарника
makeСборка sley-dirtyfrag
make cleanУдаление бинарника
МераЭффект
Заплатка / обновление ядраУстраняет основную ошибку записи в кэш страниц
Ограничение пользовательских пространств имёнБлокирует данный PoC (требует CONFIG_USER_NS)
Удаление ненужных setuid бинарниковУменьшает количество возможных целей (chmod u-s или удаление)
Lockdown / LSM (SELinux, AppArmor)Может ограничить пост-эксплуатационное воздействие в зависимости от политики
Мониторинг XFRM + UDP/4500Обнаружение аномальной регистрации SA и ESP-in-UDP трафика из непривилегированных пространств имён
execve("/bin/sh")
  • При выходе из оболочки — сброс кэша страниц (posix_fadvise), чтобы ядро перезагрузило чистый файл с диска.
  • ФайлОписание
    sley-dirtyfrag.cИсходный код эксплойта
    MakefileСборочный скрипт
    proof-of-concept-1.jpgСкриншот PoC — предварительная проверка + эксплойт
    proof-of-concept-2.jpgСкриншот PoC — проверка оболочки root
    README.mdЭтот файл