Sploitus

Exploit for cve-2026-31431 CVE-2026-31431

kitploit · 2026-08-27

Exploit Code

MARKDOWN223 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-NISEC-ERIC-CVE-2026-31431
# CVE-2026-31431 — исследовательский репозиторий «Copy Fail»

![Severity: High](https://img.shields.io/badge/Severity-High-red) ![CVSS: 7.8](https://img.shields.io/badge/CVSS%20v3.1-7.8%20HIGH-orange) ![CVE](https://img.shields.io/badge/CVE-2026--31431-blue) ![Release](https://img.shields.io/github/v/release/nisec-eric/cve-2026-31431?label=Release&color=green) ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)

> **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 — Используйте ответственно.