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

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

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

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

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

Категории

Все категории
Loading categories
Copyfail-sh — Реализация copyfail на Bash (CVE-2026-31431) | Kitploit
Инструменты/GitHubGitHub/nonameuserosint-hue/copyfail-sh
Повышение привилегийАнализ уязвимостейЭксплуатацияШелл-кодТестирование на ПроникновениеRed TeamingЭксплуатация Бинарных Файлов
GitHubnonameuserosint-hue/copyfail-sh

Copyfail-sh

Реализация copyfail на Bash (CVE-2026-31431)

Репозиторий
154 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

copyfail-sh

Никаких гонок. Никаких смещений. Никакого предварительно собранного бинарника, которому нужно слепо доверять.

Реализация CVE-2026-31431 (Copy Fail) на bash. Скрипт компилирует минимальный вспомогательный код на C в рантайме. Слой bash отвечает за определение архитектуры, декомпрессию полезной нагрузки и выбор цели; слой C выполняет непосредственное взаимодействие с ядром (сокеты AF_ALG, splice, sendmsg), которое bash самостоятельно не может осуществить.

Подробный технический разбор см. на copy.fail.

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

Ошибка находится в algif_aead — интерфейсе сокетов AF_ALG AEAD ядра. Оптимизация in-place 2017 года позволяет страницам кэша страниц оказаться в записываемом списке рассеяния (scatterlist) операции расшифровки authencesn. Если передать правильные входные данные через splice(), получается детерминированная запись 4 байт в кэш страниц любого читаемого файла, включая setuid-бинарники, которые вам не принадлежат.

Перезаписывая /usr/bin/su шеллкодом по 4 байта за раз и запуская его, можно получить рутовую оболочку. Ни окна гонки, ни специфичных для ядра символов, ни повторных попыток.

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

chmod +x copyfail.sh

# Проверка уязвимости системы перед выполнением
./copyfail.sh -c

# Запуск эксплойта (не от root)
./copyfail.sh

# Указание другой setuid-цели
./copyfail.sh -t /usr/bin/passwd

# Вывод всех setuid-root кандидатов в системе
./copyfail.sh -s

Восстановление su после получения оболочки

Эксплойт перезаписывает только кэш страниц в памяти, файл на диске не трогается. Перезагрузка всё восстанавливает. Если нужно немедленно привести всё в порядок:

# Внутри рутовой оболочки
/usr/bin/su --version   # всё ещё работает с диска, если кэш страниц вытеснен
# Или просто перезагрузиться

Если вы использовали -t с чем-то отличным от su, ситуация та же. Только кэш страниц, диск чист.

Требования

  • Linux (ядро 4.11–7.0, см. ниже)
  • gcc для компиляции встроенного вспомогательного кода на C
  • python3 для декомпрессии шеллкода (одна строка, пакеты не нужны)
  • Модули ядра: algif_aead, authencesn, hmac, cbc

Если алгоритм недоступен:

sudo modprobe algif_aead authencesn hmac cbc

Некоторые дистрибутивы содержат блокировку в /etc/modprobe.d/ в качестве временного обходного решения. Если она есть, удалите её:

sudo rm /etc/modprobe.d/disable-algif{_,-}aead.conf 2>/dev/null

Затронутые ядра

нижняя граница: torvalds/linux 72548b093ee3   август 2017, v4.14
                                              (переработка iov_iter в AF_ALG,
                                               которая ввела примитив записи
                                               файловой страницы через splice
                                               в scatterlist AEAD)

верхняя граница: torvalds/linux a664bf3d603d   апрель 2026, mainline
                                              (откат оптимизации in-place 2017;
                                               исходный и целевой scatterlists
                                               теперь разделены, страницы кэша
                                               страниц больше не могут оказаться
                                               записываемым криптовыходом)

Между этими двух коммитами: все основные дистрибутивы, которые не применили исправление. Ubuntu, RHEL, SUSE, Amazon Linux, Debian — все были подтверждены уязвимыми на момент раскрытия. Бэкпорты для дистрибутивов начали появляться около 2026-04-29. Чтобы проверить конкретное ядро, найдите a664bf3d603d (или его бэкпорт для дистрибутива) в changelog.

Поддерживаемые архитектуры

АрхитектураСтатус
x86_64✓
aarch64✓
i386 / i686✓
armv7l✓

Смягчение

Навсегда: обновите ядро.

Обходное решение (блокирует сокет AF_ALG; не затрагивает IPsec/XFRM, который использует крипто API ядра напрямую):

echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null

Контейнеры: добавьте seccomp-профиль, блокирующий создание сокетов AF_ALG, и установите allowPrivilegeEscalation: false в контексте безопасности пода. Это включает no_new_privs, что не позволяет ядру учитывать setuid-биты при execve().

Сравнение с другими реализациями

PythonGoBash
Зависимостиpython3нет (статический бинарник)gcc + python3
Предварительно собранный бинарникнетданет
Один файлданетда
Этап компиляциинетнетда (встроенная, автоматическая)

Версия на bash не выигрывает по зависимостям, но это единый скрипт, который можно прочитать целиком перед запуском. Вспомогательный код на C генерируется и компилируется в рантайме из heredoc — нет бинарного блоба для отдельного аудита.

Ссылки

  • copy.fail — официальный сайт и статья
  • Блог Xint.io — технический разбор
  • Исправление ядра — a664bf3d603d
  • CVE-2026-31431 — NVD
  • Раскрытие oss-security
  • badsectorlabs/copyfail-go — реализация на Go (шеллкоды взяты отсюда)
  • xeloxa/copyfail-exploit — реализация на Python

Благодарности

  • Taeyang Lee и Theori / Xint Code — обнаружение уязвимости и оригинальный PoC

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

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

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