
Bash 스크립트로 CVE-2026-31431(Copy Fail) Linux 커널 로컬 권한 상승 취약점을 AF_ALG 소켓을 통해 탐지 및 완화하며, 모듈 비활성화 및 seccomp 구성을 포함합니다.
이 프로젝트는 CVE-2026-31431("Copy Fail"이라고도 함) Linux 커널 로컬 권한 상승 취약점을 탐지하고 완화하기 위한 Bash 스크립트 모음을 제공합니다.
a664bf3d603d 및 이후 패치이 취약점은 Linux 커널의 AF_ALG socket 구현에 존재하며, 공격자는 특정 authencesn 바인딩 작업을 구성하여 로컬 권한 상승을 달성할 수 있습니다.
| 파일 | 용도 | 실행 권한 |
|---|---|---|
check_cve_2026_31431.sh | 취약점 영향 탐지 및 위험 평가 | 일반 사용자 또는 root |
cve-2026-31431-mitigate.sh | 완화 조치 실행(모듈 비활성화, seccomp 구성 생성) | root 필요 |
bash check_cve_2026_31431.sh
스크립트는 다음 항목을 하나씩 확인합니다:
CONFIG_CRYPTO_USER_API_AEAD 상태algif_aead / af_alg 모듈 로드 상태authencesn bind 검증(완화 여부 판단)최종적으로 종합 위험 등급을 출력합니다: UNKNOWN / LOW / MEDIUM / HIGH.
참고: 완화 스크립트는 root 권한으로 실행해야 합니다.
sudo bash cve-2026-31431-mitigate.sh
완화 작업에는 다음이 포함됩니다:
/etc/modprobe.d/disable-algif-aead.conf 작성, algif_aead 모듈 로드 금지algif_aead가 이미 로드된 경우 언로드 시도(rmmod)depmod -a 실행하여 모듈 의존성 업데이트sudo bash cve-2026-31431-mitigate.sh --verify-only # 검증만 수행, 구성 작성 안 함
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # Docker seccomp 구성 추가 생성
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # seccomp 출력 경로 지정
완화가 적용되었는지 판단하는 핵심 기준: authencesn bind 실패.
탐지 스크립트의 "확인 항목 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
이 프로젝트에서 제공하는 스크립트는 보안 탐지 및 임시 완화 목적으로만 사용되며, 공식 커널 패치 업그레이드를 대체할 수 없습니다. 이 스크립트를 사용하기 전에 해당 작업(예: 커널 모듈 비활성화)을 충분히 이해하고 테스트 환경에서 먼저 검증하십시오. 작성자는 이 도구 사용으로 인해 발생하는 직간접적 손실에 대해 책임을 지지 않습니다.