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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-31431 — Анализ - POC - Митигация | Kitploit
Инструменты/GitHubGitHub/sebastian294/cve-2026-31431
Повышение привилегийАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubsebastian294/cve-2026-31431

cve-2026-31431

Анализ - POC - Митигация

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

Популярное

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

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

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

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

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

CVE-2026-31431 — Copy Fail: Лаборатория исследований LPE ядра Linux

Только для образовательных целей. НЕ используйте на системах без явного разрешения.


Оглавление

  • Описание уязвимости
  • Затронутые компоненты
  • Как это работает
  • Настройка лаборатории (Docker)
  • PoC — Демонстрация
  • Смягчение
  • Ссылки

Описание уязвимости

ПолеЗначение
CVECVE-2026-31431
ПсевдонимCopy Fail
CVSS7.8 (High)
ТипLocal Privilege Escalation (LPE)
Затронутое ядро2017 – 2026 (коммит 72548b093ee3 и далее)
Исправление upstreamкоммит a664bf3d603d (откат 2017 года)
Раскрытие29 апреля 2026 г. (Theori / Xint Code)

Copy Fail — это детерминированная логическая ошибка (не требует гонок) в криптографической подсистеме ядра Linux. Она позволяет непривилегированному пользователю записать 4 контролируемых байта в page cache любого читаемого файла в системе, включая setuid-бинарники, такие как su или sudo.

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

В отличие от предыдущих подобных уязвимостей:

УязвимостьТипТребуется гонка?Переносимость?Размер эксплойта
Dirty Cow (CVE-2016-5195)CoW raceДаЧастичная~КБ
Dirty Pipe (CVE-2022-0847)pipe bufferНетОграниченная~КБ
Copy Fail (CVE-2026-31431)ЛогическаяНетПолная732 байта

Затронутые компоненты

Linux kernel — crypto/authencesn.c
  └── algif_aead (модуль AF_ALG)
        └── in-place optimization (коммит 72548b093ee3, 2017)
              └── AEAD scratch write → пересекает границу scatterlist
                    └── записывает 4 байта в page cache внешнего файла

Затронутые дистрибутивы: Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — любой дистрибутив с ядром ≥ 2017.


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

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

В 2017 году была введена оптимизация, из-за которой req->src и req->dst указывают на один и тот же комбинированный scatterlist. Это приводит к тому, что страницы page cache (полученные через splice()) оказываются напрямую привязаны к записываемому scatterlist назначения.

Цепочка эксплуатации

1. Открыть сокет AF_ALG с алгоритмом authencesn
2. Использовать splice() для подачи страниц page cache целевого бинарника
   в сокет AF_ALG (например, /usr/bin/sudo)
3. Выполнить операцию расшифровки AEAD
4. authencesn использует буфер назначения как scratch pad →
   пишет seqno_hi (4 контролируемых байта) ЗА пределы легитимного вывода,
   пересекая границу scatterlist
5. 4 байта попадают в страницу page cache целевого бинарника
6. Файл на диске НЕ изменяется → проверки целостности ничего не обнаруживают
7. Модифицированный в памяти бинарник выполняет payload → root

Почему это скрытно

Запись обходит обычный путь записи VFS. Файл на диске остаётся нетронутым. Такие инструменты, как sha256sum, aide, tripwire или inotify, не обнаруживают изменение, поскольку они работают с файлом на диске или с inode, а не с page cache в памяти.


Настройка лаборатории (Docker)

Лаборатория использует уязвимое ядро для демонстрации повреждения page cache. В среде Docker полное повышение привилегий зависит от конфигурации хоста (общее ядро).

# Клонировать репозиторий
git clone https://github.com/theori-io/copy-fail-CVE-2026-31431
cd cve-2026-31431

# Собрать уязвимый образ
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# Запустить лабораторию
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# Внутри контейнера:
cd /lab
python3 exploit/poc.py

Требования

  • Docker ≥ 20.x
  • Ядро хоста: Ubuntu/Debian с непропатченным ядром 5.x или 6.x (см. таблицу в docs/)
  • Python 3.10+ в контейнере (для os.splice)

PoC — Демонстрация

См. exploit/poc.py и exploit/README.md.

PoC демонстрирует:

  1. Повреждение page cache (проверяемое)
  2. Запись 4 контролируемых байт в целевой файл
  3. Полное LPE: зависит от ядра хоста (см. примечания)

Смягчение

См. mitigation/README.md для подробных инструкций.

TL;DR — Немедленное смягчение (без перезагрузки):

# Отключить затронутый модуль
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

Окончательное исправление: Обновите ядро до пропатченной версии (после коммита a664bf3d603d).


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

cve-2026-31431/
├── README.md                    ← этот файл
├── docs/
│   ├── technical-analysis.md    ← глубокий технический анализ
│   └── affected-kernels.md      ← таблица затронутых/исправленных версий
├── exploit/
│   ├── README.md                ← документация PoC
│   └── poc.py                   ← proof of concept (Python 3.10+)
├── mitigation/
│   ├── README.md                ← руководство по смягчению
│   ├── disable-algif.conf       ← конфигурация modprobe
│   └── check-vulnerable.sh      ← скрипт обнаружения
├── docker/
│   ├── Dockerfile.vulnerable    ← уязвимая лаборатория
│   └── Dockerfile.patched       ← лаборатория с применённым смягчением
└── scripts/
    └── setup-lab.sh             ← автоматизация настройки лаборатории

График раскрытия

ДатаСобытие
2017Коммит 72548b093ee3 вносит ошибку в ядро
~2025Theori/Xint Code начинает анализ криптоподсистемы
28 апреля 2026Координация с дистрибьюторами
29 апреля 2026Публичное раскрытие + публикация PoC
1 мая 2026Пропатченные ядра доступны в производственных репозиториях
1 мая 2026Добавлен в каталог CISA KEV

Ссылки

  • Xint Code — официальное описание Copy Fail
  • copy.fail — сайт уведомления
  • Официальный GitHub — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu Security Advisory
  • Microsoft Security Blog
  • Unit 42 — анализ Palo Alto
  • Исправление upstream: коммит a664bf3d603d

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