
CVE-2026-31431 Copy Fail Linux 커널 취약점 탐지 스크립트
CVE-2026-31431 (Copy Fail) 은 Linux 커널 로컬 권한 상승 취약점으로, AF_ALG 소켓(address family 38)과 splice() 제로카피 시스템 콜을 결합하여 파일 쓰기 권한을 우회하고 페이지 캐시(page cache)를 변조함으로써, 쓰기 권한이 없는 SUID 바이너리를 변조하여 root 권한을 획득합니다.
socket(AF_ALG, SOCK_SEQPACKET, 0) # AF_ALG 소켓 생성
-> bind(authencesn(hmac(sha256),cbc(aes))) # AEAD 암호화 템플릿 바인딩
-> sendmsg(AEAD 작업) # 커널 암호화 경로 트리거
-> splice(-> 대상 파일) # 제로카피 쓰기, 권한 검사 우회
-> /usr/bin/su 등 SUID 파일 변조 # root로 권한 상승
| 커널 브랜치 | 영향 범위 | 수정된 버전 |
|---|---|---|
| mainline / 6.19.x | < 6.19.12 | >= 6.19.12 |
| 6.18.x (stable) | < 6.18.22 | >= 6.18.22 |
| 6.12.x (LTS) | < 6.12.23 | >= 6.12.23 |
| 6.6.x (LTS) | < 6.6.87 | >= 6.6.87 |
| 6.1.x (LTS) | < 6.1.130 | >= 6.1.130 |
| 4.14 ~ < 7.0 | 전체 영향 | 안전 버전으로 업그레이드 |
| < 4.14 | 영향 없음 | - |
| >= 7.0 | 수정 포함 | - |
# 스크립트 다운로드
wget https://raw.githubusercontent.com/tangjie1/CVE-2026-31431-Check/main/cve-2026-31431-check.sh
# 실행 권한 부여 및 실행 (root 필요)
chmod +x cve-2026-31431-check.sh
sudo ./cve-2026-31431-check.sh
# 비대화형 모드 (자동화/CI에 적합)
sudo ./cve-2026-31431-check.sh --non-interactive
| 번호 | 탐지 내용 | 설명 |
|---|---|---|
| [1.0] | 영향받는 버전 범위 표 | 각 브랜치의 영향/수정 버전 대조 표시 |
| [1.1] | 커널 버전 | 알려진 영향 범위 및 수정 기준선 대조 |
| [1.2] | algif_aead 모듈 상태 | 4가지 상태: 내장 / 로드됨 / 존재(필요 시 로드 가능) / 없음 |
| [1.3] | authencesn 암호화 템플릿 | /proc/crypto에서 사용 가능 여부 |
| [1.4] | 완화 조치 | initcall_blacklist + modprobe.d 블랙리스트 |
| [1.5] | 종합 판정 | 다중 요소 교차 분석으로 safe/medium/high/critical 결론 도출 |
| 번호 | 탐지 내용 | 설명 |
|---|---|---|
| [2.1] | SUID 페이지 캐시 탐지 | dd direct I/O vs 캐시 해시 비교 |
| [2.2] | 모듈 로드 이력 | dmesg + lsmod 로드 시간 |
| [2.3] | Shell 히스토리 스캔 | 전체 사용자 .bash_history 키워드 매칭 |
| [2.4] | 시스템 파일 탐지 | UID=0 비정상 사용자 / passwd & SUID 수정 시간 |
| [2.5] | 임시 디렉터리 스캔 | /tmp /var/tmp /dev/shm 최근 24시간 의심 파일 |
| [2.6] | 시스템 로그 감사 | su 실패 기록 + sudo 취약점 키워드 |
| [2.7] | 컨테이너 탈출 탐지 | Docker 환경 + seccomp + /proc/1/root |
| 방식 | 원리 | 재부팅 필요 여부 | 적용 시나리오 |
|---|---|---|---|
| 방식 1 | modprobe.d 블랙리스트 + rmmod | 아니요 | CONFIG=m (모듈 모드) |
| 방식 2 | initcall_blacklist 커널 파라미터 | 예 | CONFIG=y (내장 모드) 또는 심층 방어 |
| 방식 3 | 커널을 안전 버전으로 업그레이드 | 예 | 영구 수정 (권장) |
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
MIT License
본 도구는 보안 연구 및 승인된 침투 테스트에만 사용됩니다. 사용자는 현지 법률 및 규정을 준수하고, 명시적 승인을 받은 대상 시스템에서만 사용해야 합니다. 개발자는 승인되지 않은 사용으로 인한 결과에 대해 책임을 지지 않습니다.