
Script Python pour vérifier si un système Linux est vulnérable à la faille CVE-2026-31431 (Copy Fail), une élévation de privilèges locale dans le noyau Linux.
Linux 시스템이 커널의 로컬 권한 상승 취약점인 CVE-2026-31431(Copy Fail)에 취약한지 확인하는 Python 스크립트입니다.
2017년(커밋 72548b093ee3)부터 커널의 암호화 모듈 algif_aead는 제자리(in-place) 연산을 잘못 처리합니다. splice()를 통해 비특권 사용자가 setuid 바이너리의 페이지 캐시를 손상시켜 디스크에 아무것도 쓰지 않고 root 권한을 얻을 수 있습니다.
| # | 확인 내용 |
|---|---|
| 1 | 커널 버전(취약 범위) |
| 2 | algif_aead 모듈 로드 또는 로드 가능 여부 |
| 3 | 권한 없이 AF_ALG SOCK_SEQPACKET 소켓 접근 가능 여부 |
| 4 | os.splice() 사용 가능 여부(직접 Python 익스플로잇) |
| 5 | 모든 사용자가 읽을 수 있는 setuid 바이너리(sudo, passwd 등) |
| 6 | 활성화된 보호 기능(SELinux, AppArmor, modprobe 블랙리스트) |
python3 check_cve_2026_31431.py
외부 의존성 없음. root 권한 없이 동작합니다.
이 스크립트는 시스템을 분석만 합니다. 취약점을 악용하지 않으며, 모듈을 로드하지 않고, 디스크에 아무것도 쓰지 않습니다.
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/algif_aead-block.conf
이 우회 방법은 RHEL 배포판에서는 작동하지 않습니다(모듈이 커널에 내장되어 있음).