## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-NISEC-ERIC-CVE-2026-31431
# CVE-2026-31431 — исследовательский репозиторий «Copy Fail»
    
> **100% надёжное локальное повышение привилегий в Linux, затрагивающее все основные дистрибутивы с 2017 года.**
>
> Одна логическая ошибка в `authencesn`, объединённая через `AF_ALG` и `splice()` в 4-байтовую запись в page cache — незаметно эксплуатируемая почти десятилетие.
## ⚠️ Отказ от ответственности
**Весь код и документация в этом репозитории предоставлены исключительно для авторизованных исследований в области безопасности и образовательных целей.**
Запуск эксплойтов против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, является незаконным. Используя этот репозиторий, вы принимаете на себя полную ответственность за свои действия.
* * *
## Обзор
### Чем Copy Fail отличается
* * *
## Структура репозитория
root@kitploit:~
.
├── README.md ← Вы здесь
├── LICENSE ← MIT
├── .gitignore
├── docs/
│ ├── analysis-report.md ← Полный анализ безопасности
│ ├── analysis-report.html ← Стилизованная HTML-версия
│ ├── exploit-walkthrough.md ← Построчный анализ PoC
│ └── exploit-walkthrough.html ← Стилизованная HTML-версия
└── poc/
├── README.md ← Руководство по использованию PoC
├── copy_fail_exp.py ← Официальный PoC (732 байта, обфусцированный)
├── copy_fail_exp_readable.py ← Деобфусцированная + аннотированная версия
├── copy_fail_exp_compat.py ← Совместимость с Python 3.6+ (ctypes splice)
├── copy_fail_exp_alpine.py ← Вариант для Alpine Linux
├── copy_fail_exp.c ← Реализация на C (без зависимостей)
├── copy_fail_exp.go ← Реализация на Go (без зависимостей)
├── copy_fail_rust/ ← Реализация на Rust
│ ├── Cargo.toml
│ └── src/main.rs
├── check_vulnerable.py ← Сканер уязвимости
└── mitigate.sh ← Скрипт смягчения в один клик
* * *
## Быстрый старт
### Загрузка готового релиза
root@kitploit:~
# Из GitHub Releases — готовые бинарники (Linux amd64/arm64) + все Python-скрипты
wget https://github.com/nisec-eric/cve-2026-31431/releases/latest/download/copy-fail-go-linux.tar.gz
wget https://github.com/nisec-eric/cve-2026-31431/releases/latest/download/copy-fail-c-linux.tar.gz
wget https://github.com/nisec-eric/cve-2026-31431/releases/latest/download/copy-fail-python.tar.gz
tar xzf copy-fail-go-linux.tar.gz
tar xzf copy-fail-c-linux.tar.gz
tar xzf copy-fail-python.tar.gz
# Статический бинарник Go (Python не нужен)
chmod +x copy-fail-exp-amd64
./copy-fail-exp-amd64
# Статический бинарник C
chmod +x copy-fail-exp-c-amd64
./copy-fail-exp-c-amd64
# Или используйте Python-скрипты напрямую
python3 check_vulnerable.py
> 📦 Релизы автоматически собираются через GitHub Actions при каждом push тега `v*`. Бинарники Go и C собираются для **linux/amd64** и **linux/arm64** как статические.
### 1\. Проверьте, уязвима ли ваша система
root@kitploit:~
python3 poc/check_vulnerable.py
### 2\. Примените смягчение (без перезагрузки)
root@kitploit:~
sudo bash poc/mitigate.sh
Это добавляет в чёрный список модуль ядра `algif_aead` — ничего не ломает для 99% систем.
### 3\. Правильное исправление — обновите ядро
root@kitploit:~
# Debian/Ubuntu
sudo apt update && sudo apt upgrade linux-image-*
# RHEL/CentOS/Fedora
sudo dnf update kernel
# Перезагрузитесь в исправленное ядро
sudo reboot
### 4\. Проверка
root@kitploit:~
python3 poc/check_vulnerable.py
# Код выхода 1 = защищено ✓
* * *
## PoC-эксплойты
> **ПРЕДУПРЕЖДЕНИЕ: Запускайте только на системах, которыми вы владеете или на тестирование которых у вас есть разрешение.**
root@kitploit:~
# C
gcc -static -o exp ./poc/copy_fail_exp.c && ./exp
# Python
python3 poc/copy_fail_exp.py
python3 poc/copy_fail_exp_compat.py # Python < 3.10
# Go
go build -o exp ./poc/copy_fail_exp.go && ./exp
# Rust
cd poc/copy_fail_rust && cargo run --release
Все версии принимают необязательный аргумент для нацеливания на другой SUID-бинарник:
root@kitploit:~
python3 poc/copy_fail_exp.py /usr/bin/passwd
./exp /usr/bin/sudo
* * *
## Документация
### 📄 Отчёт об анализе безопасности (HTML)
Полная оценка уязвимости, включающая:
* Техническую первопричину (происхождение страниц scatterlist, запись в scratch-буфер `authencesn`)
* Затронутые версии и статус исправлений в дистрибутивах
* Устранение для bare-metal Linux, Kubernetes, Docker, WSL2
* Рекомендации по обнаружению и мониторингу (auditd, SELinux, целостность файлов)
* Хронологию раскрытия
### 📄 Разбор эксплойта (HTML)
Построчный анализ PoC, включающий:
* Полный деобфусцированный исходный код с аннотациями
* Внутренности ядра: поток сокетов `AF_ALG`, доставка через `splice()` в page cache, механика `sg_chain()`
* Запись в scratch-буфер ESN в `authencesn`, пересекающую границы scatterlist
* Анализ полезной нагрузки (160-байтовый ELF-шеллкод)
* Варианты атак: инъекция в `/etc/passwd`, нацеливание на общие библиотеки, побег из контейнера
* Ограничения и границы атаки
* * *
## Влияние по средам
* * *
## Ключевые ссылки
* copy.fail — официальная страница уязвимости
* Блог Xint — технический разбор — глубокое погружение в первопричину
* Запись NVD
* Консультация GitHub GHSA-2274-3hgr-wxv6
* Патч ядра (коммит a664bf3d603d)
* Официальный репозиторий PoC
* Консультация Red Hat | Ubuntu | SUSE | Amazon Linux
* * *
## Участие
Приветствуется вклад:
* Дополнительные реализации PoC (Zig и т.д.)
* Результаты тестирования для конкретных дистрибутивов
* Правила обнаружения (Snort, Suricata, YARA, Sigma)
* Переводы документации
Пожалуйста, открывайте issue или pull request.
## Лицензия
MIT — Используйте ответственно.