
복사 실패(CVE-2026-31431) LPE 익스플로잇. Linux 커널 AF_ALG 페이지 캐시 취약점을 대상으로 하는 깔끔한 다중 아키텍처 Python 재구현.
Linux 커널 4.11부터 패치된 6.18 릴리스 이전 버전까지의 로컬 권한 상승 취약점입니다.
이 버그는 커널의 AF_ALG 소켓 인터페이스, 특히 authencesn이 제자리(in‑place) AEAD 복호화 중 scatter-gather 목록을 처리하는 방식에 존재합니다. 그 결과, 권한이 없는 사용자가 읽기 가능한 모든 파일의 페이지 캐시 에 4바이트씩 덮어쓸 수 있습니다.
/usr/bin/su와 같은 setuid 바이너리를 셸코드로 덮어쓰고 실행하면 root 권한을 얻을 수 있습니다. 레이스(race) 조건도, 커널 심볼도, 재컴파일도 필요 없습니다. 동일한 172바이트 AArch64 페이로드(x86‑64는 160, i386은 126, ARMv7은 138)가 모든 배포판에서 동작합니다.
이 취약점은 Taeyang Lee & Theori / Xint Code가 발견했으며 2026년 4월 29일에 공개되었습니다. 이 저장소는 승인된 테스트를 위한 독립적인 클래스 기반 재구현입니다.
| 취약점 확인 | 익스플로잇 및 root 권한 획득 |
|---|---|
![]() | ![]() |
allowPrivilegeEscalation: true(Kubernetes 기본값)로 설정된 컨테이너는 탈출할 수 있습니다.4.11부터 약 6.17.x 사이의 커널을 실행하는 모든 시스템:
패치된 커널: 메인라인 ≥ 6.18.22 / 6.19.12 / 7.0, 그리고 안정 트리로의 백포트.
# 시스템이 취약한지 확인
python3 exploit.py --check
# 익스플로잇 실행 (비‑root 사용자 필요)
python3 exploit.py
os.splice 지원)authencesn(hmac(sha256),cbc(aes)) 지원 커널/usr/bin/su가 기본값이며, --scan으로 대안 탐색 가능)알고리즘 관련 오류가 발생하면 필요한 모듈을 로드하세요:
sudo modprobe algif_aead authencesn hmac cbc
일부 배포판은 임시 차단 파일(/etc/modprobe.d/disable-algif_aead.conf)을 포함합니다. 스크립트는 root로 실행 시 이를 자동으로 제거하며, 수동으로 삭제할 수도 있습니다.
영구적: 커널을 업데이트하세요. Ubuntu/Debian의 경우:
sudo apt update && sudo apt upgrade linux-image-generic
임시 해결책 (IPsec/XFRM에는 영향 없음):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
참고: IPsec/XFRM은 AF_ALG가 아닌 커널 암호화 API를 직접 사용하므로 이 차단의 영향을 받지 않습니다.
컨테이너:
주요 완화 조치는 seccomp 프로필로 AF_ALG 소켓을 차단하는 것입니다. 또한 파드 보안 컨텍스트에서 allowPrivilegeEscalation: false를 설정하여 no_new_privs를 활성화하면, 커널이 execve() 시 setuid 비트를 인정하지 않게 됩니다.
이 도구는 교육 및 승인된 보안 테스트를 위한 것입니다. 소유하지 않았거나 서면 허가를 받지 않은 시스템에서 실행하지 마세요.