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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/franklinf25/cve-2026-31431
Фреймворки для эксплойтовАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubfranklinf25/cve-2026-31431

cve-2026-31431

Анализирует CVE-2026-31431 — уязвимость AEAD в AF_ALG ядра Linux, предоставляя безопасный детектор, лабораторный эксплойт для повышения привилегий (LPE) и QEMU-лабораторию с ядрами A/B для проверки.

Репозиторий
5 ч 33 мин назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-31431 — Linux Kernel algif_aead «Copy Fail»: анализ

Исследование безопасности CVE-2026-31431 (CVSS 3.1 7.8 HIGH, AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H): три компоновочных дефекта проектирования в цепочке AF_ALG AEAD складываются в детерминированную, свободную от гонок запись 4 байт в page-cache по любому смещению любого читаемого файла — копия на диске остаётся чистой, поэтому контрольные суммы на диске ничего не видят. Публичный эксплойт («Copy Fail», Theori/Xint) превращает его в локальный root (LPE) с помощью 732 байт Python; ошибка присутствовала в каждом ядре с 2017 по 2026 год.

  1. 72548b093ee3 (2017) заставил _aead_recvmsg расшифровывать на месте, связывая страницы тега запроса в доступный для записи целевой SGL.
  2. splice(file → pipe → socket) подаёт в эти слоты тега страницы page-cache любого читаемого файла (zero copy).
  3. authencesn записывает свой 4-байтовый scratch ESN — значение находится в полезной нагрузки sendmsg — ровно по адресу , т.е. в первый байт тега: выбранное вами смещение файла. Это происходит проверки тега, поэтому даже запрос с выполняет запись.
AAD[4..8)
dst[assoclen + cryptlen]
до
-EBADMSG

Матрица верификации

УтверждениеДоказательство
Первопричина выведена из коммитов исправления и исходников ядра, а не из блоговfinding-sheet
Декодирование публичного PoC проверено end-to-end по последовательности системных вызововfinding-sheet
Лабораторные ядра A/B с дельтой = ровно коммит исправления, оба загружаютсяlab/scripts/build.sh + lab/out/ab-diffstat.txt
Уязвимое ядро выполняет AEAD-расшифровку authencesn через AF_ALG (smoke)lab/scripts/run.sh vuln → SMOKE=ok
Откат без сопутствующего коммита вызывает панику в crypto_authenc_esn_decrypt (первоначальная находка)lab/scripts/run.sh patched → NULL deref, воспроизводимо
Безопасный детектор: VULNERABLE на уязвимом (запись срабатывает несмотря на EBADMSG, диск остаётся CLEAN), NOT-DETECTED на полном исправленииpoc/detector.c в лаборатории → строки DETECTOR-RESULT
Замыкание LPE в лаборатории: uid 1000 патчит 4 байта page-cache SUID-бинарника и читает root-only флаг; копия на диске доказанно нетронута через чтение debugfs на уровне блоковpoc/lpe.c + lab/rootfs/tools/secretgate.c → LPE-RESULT: ROOT-FLAG-CAPTURED, DISKCLEAN=ok
Воспроизведение публичной записи в page-cache в изолированной лаборатории с атрибуциейвывод детектора выше + lab README
SGL-стресс: 5 форм на обоих ядрах — без краха, без зависания ядра (честный отрицательный результат) + два задокументированных отклонения контракта AF_ALGpoc/sgl-stress.c в лаборатории → строки SGL-STRESS

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

root@kitploit:~
# сборка трёх ядер + инструментов + пробного диска в Docker (~15 мин при первом запуске)
lab/scripts/build.sh

# загрузка оракула A/B/C (QEMU в Docker, KVM при наличии)
lab/scripts/run.sh vuln         # DETECTOR VULNERABLE + LPE ROOT-FLAG-CAPTURED + DISKCLEAN=ok
lab/scripts/run.sh patchedfull  # DETECTOR NOT-DETECTED + LPE NOT-VULNERABLE
lab/scripts/run.sh patched      # NULL deref в authencesn (разрыв в серии сопутствующих исправлений)

Что здесь оригинально по сравнению с предыдущими работами

Завершённая цепочка записи в page-cache следует опубликованному подходу Theori / Xint Code («Copy Fail», авторы, которым приписывается находка) с атрибуцией — см. раздел prior-art в finding-sheet. Оригинальная работа в этом репозитории: карта механики, привязанная к коммитам исправления; находка неполной серии исправлений (паника authencesn при откате без сопутствующего коммита и её окно в стабильных релизах); безопасный дифференциальный детектор page-cache-против-диска, который никогда не трогает файлы, которые нам не принадлежат; замыкание LPE в лаборатории против специально созданной SUID-цели (secretgate — никакой реальный бинарник никогда не является целью); исследование граничных случаев SGL (честный отрицательный результат плюс два задокументированных отклонения контракта AF_ALG); и верифицированная атрибуция веток всех восьми коммитов исправления.

Документы

ДокументЧто это
docs/finding-sheet.mdОдностраничный даташит: версии, CVSS, первопричина, коммиты исправления, поверхность атаки
docs/report-ptes.mdОтчёт по структуре PTES (7 фаз) с лабораторными доказательствами
docs/research-writeup.mdПовествование об исследовании — методология, тупики, переносимые уроки, сравнение с предыдущими работами

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

root@kitploit:~
docs/            finding sheet · отчёт PTES · исследовательский writeup
poc/             detector.c (безопасный оракул) · lpe.c (LPE в лаборатории) · sgl-stress.c (исследование SGL)
lab/             Лаборатория ядер QEMU: 5.15.203 ± исправление (A/B) + пост-сопутствующий 5.15.y (C)
lab/rootfs/      secretgate.c — специально созданная SUID-цель (единственное, что когда-либо атакуется)

Ссылки

  • Запись CVE (MITRE) · NVD
  • Theori/Xint — writeup Copy Fail · публичный PoC
  • Вводящий коммит: 72548b093ee3 «crypto: algif_aead - copy AAD from src to dst» (2017)
  • Исправление в mainline: a664bf3d603d «crypto: algif_aead - Revert to operating out-of-place» (+ 8 стабильных бэкпортов — см. finding-sheet)

Образовательный исследовательский артефакт. Запускайте только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Уязвимость исправлена — используйте актуальное ядро из стабильных веток 2026 года или новее.

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