
Passive 진단 도구로, AF_ALG 소켓 연결 가능성을 테스트하여 Linux 시스템이 CVE-2026-31431에 취약한지 확인하고, 완화 지침과 CI 친화적인 종료 코드를 제공합니다.
Linux 시스템이 CVE-2026-31431("Copy Fail")에 취약한지 여부를 판별하는 간단하고 안전한 Python 스크립트입니다. 이 취약점은 커널 4.14 이후의 모든 주요 배포판에 영향을 미치는 로컬 권한 상승 취약점입니다.
CVE-2026-31431은 Linux 커널의 algif_aead 암호화 소켓 모듈에 있는 직선형 로직 버그입니다. AF_ALG 소켓을 splice()와 함께 사용하면, 권한이 없는 공격자가 setuid 바이너리의 페이지 캐시에서 4바이트를 덮어쓰고 루트 권한을 얻을 수 있습니다.
| 속성 | 세부 사항 |
|---|
| 경쟁 조건 필요 | ❌ 아니요 – 악용이 결정적입니다 |
| 커널 오프셋 필요 | ❌ 아니요 – 버전별 오프셋이 필요 없습니다 |
| 악용 복잡성 | 루트 권한 획득에 732바이트 Python 스크립트 하나면 충분합니다 |
| 이 검사기 | 수동 진단 전용 – 취약점을 트리거하지 않습니다 |
이 스크립트는 취약점이 의존하는 정확한 알고리즘 템플릿을 사용하여 AF_ALG 소켓을 생성하고 바인딩을 시도합니다:
authencesn(hmac(sha256),cbc(aes))
| 결과 | 의미 |
|---|---|
| 소켓 생성 및 바인딩 성공 | 취약한 코드 경로에 도달 가능 – 즉시 패치하세요 |
EAFNOSUPPORT (errno 97) | 모듈이 로드되지 않음 – 공격 표면 사용 불가 |
Permission denied | MAC 정책(SELinux/AppArmor)이 접근을 차단 – 안전 |
이 스크립트는 어떤 방식으로도 취약점을 트리거하지 않습니다. 완전히 수동적이며 실행해도 안전합니다.
저장소를 클론하거나 check_copyfail.py를 다운로드한 후 실행하세요:
python3 check_copyfail.py
____ _____ _ _
/ ___|___ _ __ _ _| ___|_ _(_) |
| | / _ \| '_ \| | | | |_ / _` | | |
| |__| (_) | |_) | |_| | _| (_| | | |
\____\___/| .__/ \__, |_| \__,_|_|_|
|_| |___/
CVE-2026-31431 "Copy Fail" – 도달 가능성 검사기
Phalanx CCS / d_0_4 | 방어 목적으로만 사용
-------------------------------------------------------
커널 릴리스: 6.1.0-28-amd64
버전 범위 : 잠재적 영향 범위
AF_ALG 대상 : authencesn(hmac(sha256),cbc(aes))
[!!!] 취약한 공격 표면에 도달 가능
소켓 생성 및 바인딩 성공 – AF_ALG 도달 가능
즉시 완화 조치:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
그런 다음 패치가 제공되는 즉시 커널을 업데이트하세요.
업스트림 수정: 커밋 a664bf3d603d
이 스크립트는 공격 표면에 도달 가능하면 코드 **1**로 종료되고, 시스템이 안전하면 **0**으로 종료됩니다 — 따라서 셸 스크립트, Ansible 플레이북, CI 파이프라인에서 사용하기에 적합합니다.
커널 업데이트가 제공될 때까지 취약한 모듈을 비활성화하세요:
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
공식 수정은 메인라인 커널의 커밋 **a664bf3d603d**입니다. 패치가 제공되는 즉시 배포판의 패키지 관리자를 통해 업데이트하세요.
이 검사기는 최신 Android 기기(Termux 포함)에서 항상 안전하다고 보고합니다. 필수 SELinux 정책으로 인해 권한이 없는 앱에는 AF_ALG 소켓을 사용할 수 없으므로, 표준 Android 빌드에서는 이 취약점을 악용할 수 없습니다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 – 자세한 내용은 LICENSE를 참조하세요. 자유롭게 사용, 수정, 배포하실 수 있습니다.
면책 조항: 이 도구는 방어적 진단 목적으로만 사용됩니다.
소유하지 않은 시스템이나 명시적인 서면 허가 없이 사용하지 마세요.