
Скрипт Python для проверки, уязвима ли система Linux к ошибке CVE-2026-31431 (Copy Fail), локальному повышению привилегий в ядре Linux.
Скрипт на Python для проверки, уязвима ли система Linux к уязвимости CVE-2026-31431 (Copy Fail), локальному повышению привилегий в ядре Linux.
Начиная с 2017 года (коммит 72548b093ee3), криптографический модуль algif_aead ядра некорректно обрабатывает операции на месте. Через splice() непривилегированный пользователь может повредить page cache setuid-бинарника и получить права root без обращения к диску.
| # | Проверка |
|---|---|
| 1 | Версия ядра (уязвимый диапазон) |
| 2 | Модуль algif_aead загружен или может быть загружен |
| 3 | Сокет AF_ALG SOCK_SEQPACKET доступен без привилегий |
| 4 | os.splice() доступен (прямой эксплойт на Python) |
| 5 | Setuid-бинарники читаемы всеми (sudo, passwd...) |
| 6 | Активные защиты (SELinux, AppArmor, blacklist modprobe) |
python3 check_cve_2026_31431.py
Внешних зависимостей нет. Работает без root.
Этот скрипт лишь анализирует систему. Он не эксплуатирует уязвимость, не загружает никаких модулей и ничего не записывает на диск.
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/algif_aead-block.conf
Этот обходной путь не работает на дистрибутивах RHEL (модуль встроен в ядро).