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

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

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

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

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

Категории

Все категории
Loading categories
block-copyfail — BPF LSM блокировщик для CVE-2026-31431 (Copy Fail) — блокирует привязки authencesn AF_ALG во время выполнения без перезагрузки системы | Kitploit
Инструменты/GitHubGitHub/atgreen/block-copyfail
Оборонительные ИнструментыДинамический анализ (песочница)Анализ уязвимостейРеагирование на Инциденты
GitHubatgreen/block-copyfail

block-copyfail

BPF LSM блокировщик для CVE-2026-31431 (Copy Fail) — блокирует привязки authencesn AF_ALG во время выполнения без перезагрузки системы

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

Популярное

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

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

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

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

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

block-copyfail

Proof of concept — среда выполнения для смягчения последствий CVE-2026-31431 («Copy Fail») — повышения привилегий в ядре Linux через криптографический шаблон authencesn в algif_aead.

В отличие от блокировки модулей, это не требует перезагрузки. Программа BPF LSM перехватывает socket_bind и блокирует все привязки AEAD через AF_ALG — подсистему, эксплуатируемую Copy Fail. Это предотвращает обходы через вложенность криптографических шаблонов (например, pcrypt(authencesn(...))). Другое использование AF_ALG (hash, skcipher) не затрагивается.

Заблокированные попытки регистрируются в реальном времени с указанием PID, имени процесса и временной метки.

Предварительные требования

  • Ядро Linux 5.7+ с CONFIG_BPF_LSM=y и lsm=bpf в параметрах загрузки
  • SBCL 2.0+
  • Whistler (компилятор eBPF на Common Lisp)
root@kitploit:~
make doctor   # проверить все предварительные требования

Быстрый старт

root@kitploit:~
git clone https://github.com/atgreen/block-copyfail.git
cd block-copyfail
make ubi8-build
sudo ./block-copyfail

Блокировщик остаётся активным до нажатия Ctrl-C, после чего корректно отключается.

Локальная сборка

Для сборки на вашей машине нужны SBCL и Whistler (компилятор eBPF на Common Lisp):

root@kitploit:~
git clone https://github.com/atgreen/whistler.git ~/git/whistler
make build
sudo ./block-copyfail

Сборка переносимого бинарника (EL8+)

Сборка внутри контейнера UBI8 позволяет получить бинарник, работающий на RHEL/CentOS/Alma/Rocky 8+, Fedora, Ubuntu 20.04+ и любом Linux с glibc 2.28 или новее. SBCL или Whistler на целевой системе не нужны — просто скопируйте бинарник и запустите его.

root@kitploit:~
make ubi8-build
scp block-copyfail root@server:
ssh root@server ./block-copyfail

Компиляция в ELF-объект

Создаёт стандартный файл .bpf.o, загружаемый через bpftool, libbpf или любой загрузчик BPF:

root@kitploit:~
make elf
sudo mkdir -p /sys/fs/bpf/copyfail
sudo bpftool prog loadall block-copyfail.bpf.o /sys/fs/bpf/copyfail autoattach

Для отключения и удаления:

root@kitploit:~
sudo rm -rf /sys/fs/bpf/copyfail

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

При запущенном блокировщике в одном терминале запустите тест в другом:

root@kitploit:~
python3 trigger-test.py

Тестовый скрипт пытается выполнить привязку AEAD через AF_ALG (эксплойт не выполняется).

Ожидаемый вывод в тестовом терминале:

root@kitploit:~
BLOCKED: aead/authencesn(hmac(sha256),cbc(aes)) — [Errno 1] Operation not permitted
BLOCKED: aead/gcm(aes) — [Errno 1] Operation not permitted
ALLOWED: hash/sha256
ALLOWED: skcipher/cbc(aes)

Ожидаемый вывод в терминале блокировщика:

root@kitploit:~
Copy Fail blocker active — all AF_ALG AEAD binds blocked.
Other AF_ALG usage (hash, skcipher) unaffected.
Watching for blocked attempts. Press Ctrl-C to exit.

TIME                  PID       COMMAND
----                  ---       -------
06:38:12               31337  python3

Без запущенного блокировщика тестовый скрипт выводит ALLOWED для всех четырёх алгоритмов.

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

Программа BPF считывает 7 байт struct sockaddr_alg из аргументов socket_bind через bpf_probe_read_kernel, проверяет salg_family == AF_ALG и salg_type == "aead" и возвращает -EPERM при совпадении. Это блокирует все привязки алгоритмов AEAD независимо от вложенности шаблонов. События отправляются в пользовательское пространство через кольцевой буфер.

Написано на Whistler — диалекте Common Lisp, который компилируется напрямую в байткод eBPF — без C, clang или LLVM.

Лицензия

MIT

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