
Только для чтения чекер для CVE-2026-31431 (algif_aead локальный root). Отображает состояние ядра/модуля и предлагает меры по смягчению.
Проверка только для чтения для уязвимости локального повышения привилегий algif_aead (CVE-2026-31431).
Проверяет конфигурацию ядра, состояние модуля, доступность сокета AF_ALG и любые принятые вами меры смягчения, затем выводит вердикт. Он не выполняет эксплойт-код.
Сопутствующий инструмент для dirty-frag-check (CVE-2026-43284 / CVE-2026-43500).

Внимание: это эвристика. Зелёный вердикт не является гарантией. Перепроверьте с рекомендациями вашего дистрибутива, прежде чем считать хост безопасным. MIT, без гарантий.
curl -fsSL https://github.com/haydenjames/CVE-2026-31431-check/releases/latest/download/cve-2026-31431.sh | bash
Сначала прочитайте, если не доверяете перенаправлению в bash:
curl -fsSLO https://github.com/haydenjames/CVE-2026-31431-check/releases/latest/download/cve-2026-31431.sh
less cve-2026-31431.sh
chmod +x cve-2026-31431.sh && ./cve-2026-31431.sh
Зафиксируйте тег релиза для контроля изменений: https://raw.githubusercontent.com/haydenjames/CVE-2026-31431-check/v1.0.3/cve-2026-31431.sh.
-q для однострочного вывода по парку. -h для справки. Коды завершения: 0 — OK, 1 — уязвим, 2 — неизвестно.
-q выводит одну строку на хост, так что вы можете передавать его через любой удалённый исполнитель, который уже используете:
# parallel-ssh
parallel-ssh -h hosts.txt -i 'bash -s -- -q' < cve-2026-31431.sh
# ansible
ansible all -m script -a "cve-2026-31431.sh -q"
Коды завершения (0 — OK, 1 — уязвим, 2 — неизвестно) также работают, если ваши инструменты агрегируют по статусу.
bash 4+ и обычные awk/grep/sed/lsmod/modprobe. Если доступен python3, будет также проверена доступность сокета AF_ALG; если нет — эта проверка пропускается. Сама проверка не требует прав root. Применение мер смягчения — требует.
algif_aead. Встроенный, загружаемый модуль, загружен или отсутствует. Читает /boot/config-* или /proc/config.gz, в качестве запасного варианта использует lsmod.
1b. Состояние authencesn. Согласно рекомендации вышестоящего разработчика, это модуль, который фактически содержит ошибку — algif_aead — один из путей доступа, IPsec — другой. Обнаруживается через lsmod/modinfo и конфигурацию.modprobe -n -v. Также отмечает сломанный трюк DefaultRestrictAddressFamilies в systemd [Manager], который муссируется — эта директива работает только для юнитов, а не в system.conf.d. Сообщает статус SELinux и AppArmor.algif_aead встроен. Вердикт по возможности; он опирается на коды завершения dnf check-update, которые могут быть ненулевыми по не связанным причинам (сеть, устаревшие метаданные). Не считайте, что вы застряли в ожидании, не проверив трекер дистрибутива.Согласно рекомендации вышестоящего разработчика, ошибка на самом деле находится в криптографическом модуле authencesn — algif_aead — лишь один из путей доступа. Внесите оба в чёрный список для безопасности:
sudo tee /etc/modprobe.d/disable-cve-2026-31431.conf <<'EOF'
install algif_aead /bin/false
install authencesn /bin/false
EOF
sudo rmmod authencesn algif_aead 2>/dev/null || true
Если rmmod говорит «модуль используется», что-то на машине активно использует AF_ALG или IPsec (некоторые VPN, шифрование дисков, инструменты криптографии в пользовательском пространстве). Не принуждайте к выгрузке. Установите заплатку и перезагрузитесь.
Если уязвимый код скомпилирован в ваше ядро, внесение в чёрный список не поможет. Только обновление ядра исправит это.
AlmaLinux 8, AlmaLinux 9.7, CentOS 7 (TuxCare ELS), Ubuntu 22.04, Ubuntu 24.04.
Отчёты об ошибках, повлиявшие на v1.0.1:
kmod в Ubuntu не обнаруживалось, что приводило к ложным вердиктам VULNERABLE на исправленных хостах Ubuntu.MIT — см. LICENSE.