CVE-2026-31431 (Copy Fail) скрипт проверки уязвимости

Обзор уязвимости
CVE-2026-31431 (Copy Fail) — это уязвимость локального повышения привилегий в ядре Linux, которая через сокеты AF_ALG (address family 38) в сочетании с системным вызовом нулевого копирования splice() обходит права на запись в файлы и изменяет page cache, позволяя модифицировать SUID-бинарники без прав на запись и получать root-привилегии.
Цепочка атаки
socket(AF_ALG, SOCK_SEQPACKET, 0) # создание сокета AF_ALG
-> bind(authencesn(hmac(sha256),cbc(aes))) # привязка шаблона шифрования AEAD
-> sendmsg(AEAD операция) # запуск пути шифрования в ядре
-> splice(-> целевой файл) # запись с нулевым копированием, обход проверки прав
-> изменение SUID-файлов, таких как /usr/bin/su # повышение привилегий до root
Затронутые версии ядра
Возможности скрипта
- Обнаружение уязвимости: определение версии ядра + четырёхсостояний анализ algif_aead + проверка мер смягчения
- Расследование вторжения: сравнение page cache SUID + история загрузки модулей + сканирование истории Shell + целостность системных файлов + аудит журналов + обнаружение контейнеров
- Рекомендации по исправлению: три способа защиты (modprobe.d / initcall_blacklist / обновление ядра), конкретные команды для каждого дистрибутива
- Реагирование на инциденты: автоматический вывод полной процедуры реагирования при обнаружении признаков вторжения
Быстрое использование
# Скачать скрипт
wget https://raw.githubusercontent.com/tangjie1/CVE-2026-31431-Check/main/cve-2026-31431-check.sh
# Выдать права на выполнение и запустить (требуется root)
chmod +x cve-2026-31431-check.sh
sudo ./cve-2026-31431-check.sh
# Неинтерактивный режим (для автоматизации/CI)
sudo ./cve-2026-31431-check.sh --non-interactive
Описание проверок
Часть 1: Обнаружение уязвимости [1/3]
Часть 2: Расследование вторжения [2/3]
Часть 3: Рекомендации по исправлению [3/3]
Поддерживаемые системы
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
License
MIT License
Отказ от ответственности
Данный инструмент предназначен только для исследований в области безопасности и авторизованного тестирования на проникновение. Пользователь обязан соблюдать местные законы и нормативные акты и использовать инструмент только на целевых системах с явно полученным разрешением. Разработчик не несёт ответственности за любые последствия неавторизованного использования.