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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-31431-CopyFail — Эксплойт для локального повышения привилегий CVE-2026-31431 (Copy Fail), нацеленный на повреждение страничного кэша ядра Linux через модуль AF_ALG AEAD. Включает PoC, правила обнаружения, настройку лабораторной среды и скрипты для смягчения для авторизованного тестирования безопасности. | Kitploit
Инструменты/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеПобег из КонтейнераЭксплуатация Бинарных ФайловЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Эксплойт для локального повышения привилегий CVE-2026-31431 (Copy Fail), нацеленный на повреждение страничного кэша ядра Linux через модуль AF_ALG AEAD. Включает PoC, правила обнаружения, настройку лабораторной среды и скрипты для смягчения для авторизованного тестирования безопасности.

GitHub
0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

Репозиторий
3 месяцев назадЕщё не проверено
Поделиться
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

Повышение привилегий в локальной системе Linux через повреждение кэша страниц в algif_aead


CVE CVSS Kernel-yellow?style=for-the-badge&logo=linux&logoColor=black) License Status


⚠️ ТОЛЬКО ДЛЯ АВТОРИЗОВАННОГО ИСПОЛЬЗОВАНИЯ — Данный репозиторий предназначен строго для пентестеров, исследователей безопасности и защитников, действующих в рамках законного разрешения. Неправомерное использование является уголовным преступлением.


📖 Содержание


🔍 Что такое Copy Fail?

Copy Fail — это уязвимость локального повышения привилегий (LPE), раскрытая 29 апреля 2026 года, затрагивающая практически все основные дистрибутивы Linux, работающие на ядрах, выпущенных с 2017 года.

root@kitploit:~
Непривилегированный пользователь  ──►  AF_ALG + splice()  ──►  Запись 4 байт в кэш страниц  ──►  ROOT

Ключевые факты

Почему это опасно

  • 🕵️ Скрытность — Изменение существует только в кэше страниц; файл на диске никогда не меняется. Стандартные методы криминалистики диска не обнаружат его.
  • ⚡ Надёжность — Детерминированная логическая ошибка, а не состояние гонки. Эксплойт работает стабильно в разных средах.
  • 🌐 Универсальность — Затрагивает Ubuntu, RHEL, Amazon Linux, SUSE, Debian — каждый крупный дистрибутив с 2017 года.
  • ☸️ Влияние на облако/K8s — Может способствовать выходу из контейнера в рабочих нагрузках Kubernetes и CI/CD раннерах.
  • 🤖 Обнаружена ИИ — Найдена системой ИИ Xint Code примерно за 1 час сканирования и с одним запросом оператора.

🔬 Технический анализ

Первопричина

Уязвимость происходит из ошибочной оптимизации на месте, внедрённой в 2017 году (коммит 72548b093ee3) в модуле algif_aead пользовательского крипто API ядра Linux (AF_ALG).

root@kitploit:~
AF_ALG (пользовательский крипто API)
└── модуль algif_aead
    └── шаблон authencesn  ◄── УЯЗВИМО
        └── оптимизация на месте (2017)
            └── req->src == req->dst  ◄── страницы из splice() попадают в изменяемый список рассеяния dst

Сценарий атаки

root@kitploit:~
Шаг 1: Открыть сокет AF_ALG AEAD
        socket(AF_ALG, SOCK_SEQPACKET, 0)

Шаг 2: Отправить страницы splice(), ссылающиеся на целевой файл
        (страницы кэша страниц привилегированного бинарника, например /usr/bin/sudo)

Шаг 3: Запустить черновую запись authencesn
        authencesn использует буфер dst как черновик →
        записывает 4 контролируемых байта ЗА пределами легитимной области вывода

Шаг 4: Запись в кэше страниц для целевого файла теперь повреждена
        (файл на диске не тронут — изменена только копия в памяти)

Шаг 5: Запустить изменённый бинарник → ROOT

Почему кэш страниц?

Кэш страниц ядра Linux хранит в памяти копии файлов. Когда файл читается, его страницы кэшируются. Системный вызов splice() может напрямую ссылаться на эти кэшированные страницы. Передавая страницы кэша страниц в список рассеяния AF_ALG AEAD, черновая запись authencesn попадает внутрь этих кэшированных страниц, тем самым эффективно пропатчивая копию в памяти любого читаемого файла — включая привилегированные бинарники, такие как sudo, pkexec или passwd.

Исправление

Исправление в основной ветке откатывает ошибочную оптимизацию 2017 года:

root@kitploit:~
# Исправлено в коммите: a664bf3d603d
git show a664bf3d603d

🖥️ Затронутые системы

Версии ядра Linux

Матрица дистрибутивов


📁 Структура репозитория

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← Вы здесь
├── 📄 LICENSE                            ← Лицензия (исследовательская/образовательная)
├── 📄 DISCLAIMER.md                      ← Политика юридического и этического использования
├── 📄 CHANGELOG.md                       ← История версий
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← Глубокий анализ: первопричина и механизмы
│   ├── exploitation-walkthrough.md       ← Пошаговая методология
│   ├── affected-kernels.md               ← Полная матрица версий ядер/дистрибутивов
│   ├── detection.md                      ← Покрытие защитных средств (Defender, Tenable, Wazuh)
│   └── references.md                     ← Все CVE, блоги, рекомендации
│
├── 📂 exploit/
│   ├── README.md                         ← Использование, предварительные требования, протестированные дистрибутивы
│   ├── copyfail.py                       ← Эталонный PoC (образовательный)
│   ├── trigger.c                         ← C-триггер AF_ALG + splice()
│   └── variants/
│       ├── ubuntu.py                     ← Вариант для Ubuntu
│       ├── rhel.py                       ← Вариант для RHEL/CentOS
│       └── amazon_linux.py              ← Вариант для Amazon Linux
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← YARA-правило для артефактов эксплойта
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← Sigma-правило для SIEM/SOC
│   └── scripts/
│       ├── check_vulnerable.sh           ← Быстрая проверка ядра на уязвимость
│       └── detect_algif_aead.sh         ← Проверка, загружен ли модуль
│
├── 📂 mitigation/
│   ├── README.md                         ← Обзор смягчающих мер
│   ├── disable_algif_aead.sh             ← Отключение затронутого модуля ядра
│   ├── patch-notes.md                    ← Детали патча основной ветки
│   └── kubernetes-hardening.md          ← Усиление защиты K8s / контейнеров
│
├── 📂 lab/
│   ├── Vagrantfile                       ← Воспроизводимая уязвимая VM
│   ├── setup.sh                          ← Скрипт начальной настройки лаборатории
│   └── docker/
│       └── Dockerfile                    ← Уязвимый контейнер Ubuntu
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← Шаблон отчёта для клиента
│   └── sample-finding.md                ← Пример описания находки
│
└── 📂 assets/
    ├── demo.gif                          ← (Опционально) демонстрация в терминале
    └── diagrams/
        └── page-cache-write.png         ← Схема атаки

🧪 Настройка лабораторной среды

Всегда тестируйте в изолированной, авторизованной среде. Никогда не запускайте эксплойты на продуктивных системах.

Вариант A — Vagrant VM (рекомендуется)

root@kitploit:~
# Клонировать репозиторий
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# Запустить уязвимую лабораторную VM
cd lab/
vagrant up

# Подключиться по SSH к лабораторной среде
vagrant ssh

# Проверить версию ядра (должна быть уязвимой)
uname -r

Вариант B — Docker-контейнер

root@kitploit:~
cd lab/docker/

# Собрать образ уязвимого контейнера
docker build -t copyfail-lab .

# Запустить с необходимыми привилегиями для взаимодействия с ядром
docker run --rm -it --privileged copyfail-lab /bin/bash

Проверка, уязвима ли ваша система

root@kitploit:~
# Запустить скрипт быстрой проверки
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

Ожидаемый вывод на уязвимой системе:

root@kitploit:~
[!] Версия ядра: 5.15.0-91-generic
[!] Модуль algif_aead: ЗАГРУЖЕН
[✗] Система выглядит УЯЗВИМОЙ к CVE-2026-31431 (Copy Fail)
[*] Рекомендуемое действие: применить обновление ядра или отключить algif_aead

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

root@kitploit:~
[✓] Версия ядра: 6.1.132
[✓] Система выглядит ИСПРАВЛЕННОЙ против CVE-2026-31431 (Copy Fail)

💥 Использование эксплойта

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

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

root@kitploit:~
# Python 3.6+
python3 --version

# Необходимые модули ядра присутствуют
lsmod | grep algif_aead

# Проверить, что целевой бинарник доступен для чтения
ls -la /usr/bin/sudo

Запуск PoC

root@kitploit:~
cd exploit/

# Проверить текущий уровень привилегий
id
# uid=1000(user) gid=1000(user) groups=1000(user)

# Запустить Copy Fail PoC
python3 copyfail.py

# Проверить повышение привилегий
id
# uid=0(root) gid=0(root) groups=0(root)

Рабочий процесс пентеста

root@kitploit:~
1. Определить версию ядра
   └─► uname -r / cat /proc/version

2. Проверить, загружен ли algif_aead
   └─► lsmod | grep algif_aead

3. Подтвердить непривилегированный доступ
   └─► id / whoami

4. Выполнить Copy Fail PoC
   └─► python3 exploit/copyfail.py

5. Проверить доступ root
   └─► id && cat /etc/shadow

6. Задокументировать доказательства
   └─► Скриншот + запись версии ядра, дистрибутива, хэша эксплойта

7. Применить смягчение (после теста)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. Включить в отчёт по пентесту
   └─► Использовать reports/pentest-report-template.md

🔎 Обнаружение

YARA-правило

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Detects Copy Fail (CVE-2026-31431) exploit artefacts"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

Запуск YARA сканирования:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Sigma-правило (SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Copy Fail LPE Exploit Execution (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - Легитимное тестирование крипто API
level: high

Скрипт быстрого обнаружения

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

Покрытие защитными средствами


🛡️ Смягчение

Вариант 1 — Применить патч ядра (рекомендуется)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# После обновления перезагрузить
sudo reboot

Вариант 2 — Отключить модуль algif_aead (временное решение)

root@kitploit:~
# Запустить скрипт смягчения
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

Что делает скрипт:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Модуль в настоящее время не загружен"
echo "[✓] algif_aead отключён. Перезагрузите для подтверждения сохранения."

Вариант 3 — Усиление защиты Kubernetes

Смотрите mitigation/kubernetes-hardening.md для:

  • Ограничения создания сокетов AF_ALG в политиках безопасности подов
  • Seccomp-профиля для блокировки системного вызова socket(AF_ALG, ...)
  • Приоритетного патчинга узлов Kubernetes и CI/CD раннеров

📝 Отчёт по пентесту

Готовый к использованию шаблон отчёта для клиента находится в reports/pentest-report-template.md.

Пример сводки находки

root@kitploit:~
Находка:    Локальное повышение привилегий через Copy Fail (CVE-2026-31431)
Серьёзность:   ВЫСОКАЯ (CVSS 7.8)
Хост:       10.10.10.55 (ubuntu-prod-01)
Ядро:       5.15.0-91-generic

Доказательства:
  - Непривилегированная оболочка (uid=1000) повышена до root (uid=0)
  - Подтверждено, что модуль ядра algif_aead загружен
  - Артефактов на диске нет — только кэш страниц

Рекомендация:
  1. Немедленно применить патч ядра от вендора
  2. Временное решение: отключить модуль algif_aead
  3. Проверить узлы Kubernetes и CI/CD раннеры

⚖️ Юридические и этические аспекты

Прочитайте перед использованием чего-либо из этого репозитория.

Данный репозиторий опубликован исключительно для легитимных исследований безопасности, авторизованного пентеста и защитных целей.

  • ✅ Разрешено: Тестирование на системах, которыми вы владеете или на которые имеете явное письменное разрешение.
  • ✅ Разрешено: Исследования безопасности в изолированных лабораторных средах.
  • ✅ Разрешено: Защитное использование — обнаружение, патчинг, усиление защиты.
  • ❌ Запрещено: Тестирование на системах без письменного разрешения.
  • ❌ Запрещено: Развёртывание эксплойтов на продуктивных системах.
  • ❌ Запрещено: Любое использование, нарушающее местное, национальное или международное законодательство.

Несанкционированное использование этого материала может нарушать Закон о компьютерном мошенничестве и злоупотреблениях (CFAA), Директиву ЕС 2013/40/EU, Индийский IT-закон 2000 года и аналогичные законы в вашей юрисдикции.

Авторы не несут никакой ответственности за неправильное использование. Полное юридическое уведомление см. в DISCLAIMER.md.


📚 Ссылки


🤝 Вклад

Исследователи безопасности приглашаются к внесению вклада:

  1. Форкните репозиторий
  2. Создайте ветку функции: git checkout -b feat/your-contribution
  3. Зафиксируйте изменения: git commit -m "Добавить: правило обнаружения для X"
  4. Отправьте и откройте Pull Request

Пожалуйста, соблюдайте нормы ответственного раскрытия. Не включайте оружейный, готовый к эксплуатации код, нацеленный на исправленные системы.


Сделано для сообщества безопасности — используйте ответственно.

Follow

Скачать инструмент
#РазделОписание
1Что такое Copy Fail?Краткое описание уязвимости
2Технический анализАнализ первопричины
3Затронутые системыМатрица дистрибутивов и ядер
4Структура репозиторияРасположение файлов
5Настройка лабораторной средыБезопасное воспроизведение
6Использование эксплойтаРабочий процесс пентеста
7ОбнаружениеYARA, Sigma, скрипты
8СмягчениеПатч и усиление защиты
9Отчёт по пентестуШаблоны отчётов
10Юридические и этические аспектыОтказ от ответственности
11СсылкиCVE, рекомендации, блоги
СвойствоДетали
CVE IDCVE-2026-31431
ПсевдонимCopy Fail
CVSS v3.17.8 (ВЫСОКИЙ)
Вектор атакиЛокальный
Необходимые привилегииНизкие (любой непривилегированный пользователь)
Взаимодействие с пользователемНе требуется
ОбнаружилXint Code (Theori)
Дата раскрытия29 апреля 2026
Размер эксплойта732 байта (Python PoC)
Статус патча✅ Доступен — откат коммита a664bf3d603d
Ветка ядраЗатронута?Исправленная версия
4.9.x (LTS)✅ Да4.9.340+
5.4.x (LTS)✅ Да5.4.295+
5.10.x (LTS)✅ Да5.10.239+
5.15.x (LTS)✅ Да5.15.185+
6.1.x (LTS)✅ Да6.1.132+
6.6.x (LTS)✅ Да6.6.83+
6.12.x (LTS)✅ Да6.12.19+
< 4.9 (до 2017)❌ НетН/Д — оптимизация отсутствует
ДистрибутивЗатронутые версииИсправлено?Рекомендация
Ubuntu< 26.04 (все выпуски)✅ ИсправленоUSN
Ubuntu 26.04 (Resolute)❌ Не затронут——
RHEL / CentOS7, 8, 9✅ ИсправленоRHSA-2026
Amazon Linux2, 2023✅ ИсправленоALAS
SUSE / openSUSEВсе затронуты✅ ИсправленоSUSE-SU
DebianBullseye, Bookworm✅ ИсправленоDSA
CloudLinux8, 9✅ ИсправленоРекомендация
СредствоПоддержка обнаружения
Microsoft Defender (MDVM)✅ Да
Tenable Nessus✅ Да
Qualys✅ Да
Wazuh✅ Через пользовательское Sigma-правило
Palo Alto Cortex XDR✅ Да
CrowdStrike Falcon✅ Да
ИсточникСсылка
Первоначальное раскрытие (Xint/Theori)copy.fail
Техническая статья Xint Codexint.io/blog/copy-fail
Запись NVDnvd.nist.gov
Блог безопасности Microsoftmicrosoft.com/security/blog
Рекомендация Ubuntuubuntu.com/blog
Рекомендация CERT-EUcert.europa.eu
FAQ от Tenabletenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
Рекомендация CloudLinuxblog.cloudlinux.com
Анализ Bugcrowdbugcrowd.com/blog
Патч ядра Linuxkernel.org — коммит a664bf3d603d