
Bash-скрипты для обнаружения и смягчения CVE-2026-31431 (Copy Fail) — локального повышения привилегий в ядре Linux через сокет AF_ALG, включая отключение модуля и настройку seccomp.
Этот проект предоставляет набор Bash-скриптов для обнаружения и смягчения уязвимости CVE-2026-31431 (также известной как "Copy Fail") — локального повышения привилегий в ядре Linux.
a664bf3d603d и последующие патчиУязвимость существует в реализации AF_ALG socket в ядре Linux; злоумышленник может добиться локального повышения привилегий, создав специальную операцию привязки authencesn.
| Файл | Назначение | Права запуска |
|---|---|---|
check_cve_2026_31431.sh | Обнаружение уязвимости и оценка риска | Обычный пользователь или root |
cve-2026-31431-mitigate.sh | Выполнение мер смягчения (отключение модуля, генерация конфигурации seccomp) | Требуется root |
bash check_cve_2026_31431.sh
Скрипт последовательно проверяет следующее:
CONFIG_CRYPTO_USER_API_AEADalgif_aead / af_algauthencesn (определение, применено ли смягчение)В итоге выводится общий уровень риска: UNKNOWN / LOW / MEDIUM / HIGH.
Внимание: скрипт смягчения требует прав root.
sudo bash cve-2026-31431-mitigate.sh
Меры смягчения включают:
/etc/modprobe.d/disable-algif-aead.conf для запрета загрузки модуля algif_aeadalgif_aead уже загружен — попытка выгрузки (rmmod)depmod -a для обновления зависимостей модулейsudo bash cve-2026-31431-mitigate.sh --verify-only # только проверка, без записи конфигурации
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # дополнительно сгенерировать конфигурацию seccomp для Docker
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # указать путь вывода seccomp
Золотой стандарт определения, сработало ли смягчение: сбой привязки authencesn.
«Пункт 5: проверка смягчения (bind authencesn)» в скрипте обнаружения пытается выполнить:
import socket
s = socket.socket(38, 5, 0) # AF_ALG
s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
CONFIG_CRYPTO_USER_API_AEAD=y (статически вкомпилирована в ядро), отключение модуля обычно не работает — требуется только обновление ядра.algif_aead используется, rmmod может завершиться неудачей; рекомендуется проверить после перезагрузки в окне обслуживания.socket(AF_ALG).a664bf3d603d и последующие патчи.Скрипты протестированы в следующих средах:
grep, sed, lsmod, modprobe, rmmod, depmod)python3 или python (для проверки AF_ALG socket)MIT License
Скрипты, предоставляемые этим проектом, предназначены только для проверки безопасности и временного смягчения и не заменяют обновление официального патча ядра. Перед использованием скриптов полностью осознайте их действия (например, отключение модулей ядра) и предварительно проверьте их в тестовой среде. Автор не несёт ответственности за любые прямые или косвенные убытки, вызванные использованием этого инструмента.