
CVE-2026-31431(algif_aead 로컬 루트)용 읽기 전용 점검 도구. 커널/모듈 상태를 보고하고 완화 조치를 제안합니다.
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은 정상, 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 정상, 1 취약, 2 알 수 없음)도 도구가 상태별로 집계한다면 그대로 동작합니다.
bash 4 이상, 그리고 일반적인 awk/grep/sed/lsmod/modprobe가 필요합니다. python3이 있으면 AF_ALG 소켓 접근 가능성도 테스트하며, 없으면 해당 검사는 건너뜁니다. 점검 자체는 root가 필요 없지만, 완화 조치를 적용하려면 root가 필요합니다.
algif_aead 상태. 커널 내장(built-in), 로드 가능 모듈, 로드됨, 또는 없음. /boot/config-* 또는 /proc/config.gz를 읽고, 없으면 lsmod로 대체합니다.
1b. authencesn 상태. 업스트림 권고에 따르면 이 모듈이 실제 버그를 포함하고 있습니다 — algif_aead는 접근 경로 중 하나이고, IPsec도 또 다른 경로입니다. lsmod/modinfo와 설정을 통해 탐지합니다.modprobe -n -v로 블랙리스트가 실제로 적용되는지 확인합니다. 또한 돌아다니는 잘못된 systemd [Manager]의 DefaultRestrictAddressFamilies 트릭도 표시합니다 — 이 지시어는 system.conf.d가 아닌 유닛에서만 동작합니다. SELinux와 AppArmor 상태도 보고합니다.algif_aead가 내장된 경우. 최선의 판정이며, dnf check-update 종료 코드에 의존하는데 이는 네트워크, 오래된 메타데이터 등 무관한 이유로 0이 아닐 수 있습니다. 배포판 추적기를 확인하지 않고 대기 중이라고 단정하지 마세요.업스트림 권고에 따르면 버그는 실제로 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가 "module is in use"라고 하면, 시스템의 무언가가 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 판정이 나오는 문제를 지적.MIT — LICENSE 참조.