Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-31431-CopyFail — algif_aead 페이지 캐시 손상을 통한 Linux 커널 LPE인 CVE-2026-31431 (Copy Fail)에 대한 개념 증명 익스플로잇으로, 탐지, 랩 및 완화 지침을 포함합니다. | Kitploit
도구/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationContainer EscapeBinary ExploitationLabs & Practice
GitHub0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

algif_aead 페이지 캐시 손상을 통한 Linux 커널 LPE인 CVE-2026-31431 (Copy Fail)에 대한 개념 증명 익스플로잇으로, 탐지, 랩 및 완화 지침을 포함합니다.

저장소 보기
234개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

algif_aead 페이지 캐시 손상을 통한 리눅스 커널 로컬 권한 상승


CVE CVSS Kernel License Status


⚠️ 승인된 사용만 허용됨 — 이 저장소는 법적으로 허가된 침투 테스터, 보안 연구원 및 방어자만을 위한 것입니다. 오용 시 형사 처벌을 받을 수 있습니다.


📖 목차

#섹션설명
1Copy Fail이란?취약점 요약
2기술 심층 분석근본 원인 분석
3영향받는 시스템배포판 및 커널 매트릭스
4저장소 구조파일 레이아웃
5연구실 설정안전하게 재현하기
6익스플로잇 사용법침투 테스트 워크플로
7탐지YARA, Sigma, 스크립트
8완화패치 및 강화
9침투 테스트 보고보고서 템플릿
10법적 및 윤리면책 조항
11참고 자료CVE, 권고문, 블로그

🔍 Copy Fail이란?

Copy Fail은 2026년 4월 29일에 공개된 로컬 권한 상승(LPE) 취약점으로, 2017년 이후의 커널을 실행하는 사실상 모든 주요 리눅스 배포판에 영향을 미칩니다.

권한 없는 사용자  ──►  AF_ALG + splice()  ──►  4바이트 페이지 캐시 쓰기  ──►  ROOT

주요 사실 요약

속성세부 사항
CVE IDCVE-2026-31431
별칭Copy Fail
CVSS v3.17.8 (HIGH)
공격 벡터로컬
필요 권한낮음 (임의의 권한 없는 사용자)
사용자 상호작용없음
발견자Xint Code (Theori)
공개일2026년 4월 29일
익스플로잇 크기732바이트 (Python PoC)
패치 상태✅ 사용 가능 — 커밋 a664bf3d603d 되돌리기

위험한 이유

  • 🕵️ 은밀함 — 수정 사항이 페이지 캐시에만 존재하며, 디스크 상의 파일은 절대 변경되지 않습니다. 표준 디스크 포렌식으로는 탐지할 수 없습니다.
  • ⚡ 신뢰성 — 결정론적 논리 결함으로, 경쟁 조건이 아닙니다. 익스플로잇이 환경 전반에서 일관되게 작동합니다.
  • 🌐 보편성 — Ubuntu, RHEL, Amazon Linux, SUSE, Debian 등 2017년 이후의 모든 주요 배포판에 영향을 미칩니다.
  • ☸️ 클라우드/K8s 영향 — Kubernetes 워크로드 및 CI/CD 러너에서 컨테이너 이스케이프를 용이하게 할 수 있습니다.
  • 🤖 AI 발견 — Xint Code의 AI 시스템이 약 1시간의 스캔 시간과 단일 운영자 프롬프트로 발견했습니다.

🔬 기술 심층 분석

근본 원인

이 취약점은 2017년에 도입된 (커밋 72548b093ee3) 리눅스 커널 사용자 공간 암호화 API(AF_ALG)의 algif_aead 모듈 내 버그가 있는 인플레이스 최적화에서 비롯됩니다.

AF_ALG (사용자 공간 암호화 API)
└── algif_aead 모듈
    └── authencesn 템플릿  ◄── 취약
        └── 인플레이스 최적화 (2017)
            └── req->src == req->dst  ◄── splice()의 페이지가 쓰기 가능한 dst scatterlist에 체인됨

공격 흐름

1단계: AF_ALG AEAD 소켓 열기
        socket(AF_ALG, SOCK_SEQPACKET, 0)

2단계: 대상 파일을 참조하는 splice() 페이지 전송
        (권한 있는 바이너리의 페이지 캐시 페이지, 예: /usr/bin/sudo)

3단계: authencesn 스크래치 쓰기 트리거
        authencesn이 dst 버퍼를 스크래치 패드로 사용 →
        합법적인 출력 영역을 넘어 4개의 제어된 바이트 쓰기

4단계: 대상 파일의 페이지 캐시 항목이 손상됨
        (디스크 파일은 그대로 — 메모리 내 복사본만 수정됨)

5단계: 수정된 바이너리 실행 → ROOT

페이지 캐시가 왜 중요한가?

리눅스 커널의 페이지 캐시는 파일의 메모리 내 복사본을 백업합니다. 파일을 읽으면 해당 페이지가 캐시됩니다. splice() 시스템 호출은 이러한 캐시된 페이지를 직접 참조할 수 있습니다. 페이지 캐시 페이지를 AF_ALG AEAD scatterlist에 공급하면 authencesn 스크래치 쓰기가 해당 캐시된 페이지 내부에 위치하게 되어, sudo, pkexec 또는 passwd와 같은 읽기 가능한 모든 권한 있는 바이너리의 메모리 내 복사본을 효과적으로 패치할 수 있습니다.

수정 사항

상류 수정 사항은 결함이 있는 2017년 최적화를 되돌립니다.

# Fixed in commit: a664bf3d603d
git show a664bf3d603d

🖥️ 영향받는 시스템

리눅스 커널 버전

커널 브랜치영향받음?수정 버전
4.9.x (LTS)✅ 예4.9.340+
5.4.x (LTS)✅ 예5.4.295+
5.10.x (LTS)✅ 예5.10.239+
5.15.x (LTS)✅ 예5.15.185+
6.1.x (LTS)✅ 예6.1.132+
6.6.x (LTS)✅ 예6.6.83+
6.12.x (LTS)✅ 예6.12.19+
< 4.9 (2017년 이전)❌ 아니요해당 없음 — 최적화 없음

배포판 매트릭스

배포판영향받는 버전패치됨?권고문
Ubuntu< 26.04 (모든 릴리스)✅ 패치됨USN
Ubuntu 26.04 (Resolute)❌ 영향 없음——
RHEL / CentOS7, 8, 9✅ 패치됨RHSA-2026
Amazon Linux2, 2023✅ 패치됨ALAS
SUSE / openSUSE모두 영향받음✅ 패치됨SUSE-SU
DebianBullseye, Bookworm✅ 패치됨DSA
CloudLinux8, 9✅ 패치됨권고문

📁 저장소 구조

CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← 현재 위치
├── 📄 LICENSE                            ← 연구/교육 라이선스
├── 📄 DISCLAIMER.md                      ← 법적 및 윤리적 사용 정책
├── 📄 CHANGELOG.md                       ← 버전 기록
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← 심층 분석: 근본 원인 및 메커니즘
│   ├── exploitation-walkthrough.md       ← 단계별 방법론
│   ├── affected-kernels.md               ← 전체 커널/배포판 버전 매트릭스
│   ├── detection.md                      ← Defender, Tenable, Wazuh 적용 범위
│   └── references.md                     ← 모든 CVE, 블로그, 권고문
│
├── 📂 exploit/
│   ├── README.md                         ← 사용법, 전제 조건, 테스트된 배포판
│   ├── copyfail.py                       ← 참조 PoC (교육용)
│   ├── trigger.c                         ← AF_ALG + splice() C 트리거
│   └── variants/
│       ├── ubuntu.py                     ← Ubuntu 전용 변종
│       ├── rhel.py                       ← RHEL/CentOS 변종
│       └── amazon_linux.py              ← Amazon Linux 변종
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← 익스플로잇 아티팩트용 YARA 규칙
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← SIEM/SOC용 Sigma 규칙
│   └── scripts/
│       ├── check_vulnerable.sh           ← 빠른 커널 취약점 확인
│       └── detect_algif_aead.sh         ← 모듈 로드/활성 여부 확인
│
├── 📂 mitigation/
│   ├── README.md                         ← 완화 개요
│   ├── disable_algif_aead.sh             ← 영향받는 커널 모듈 비활성화
│   ├── patch-notes.md                    ← 상류 패치 세부 정보
│   └── kubernetes-hardening.md          ← K8s / 컨테이너 강화
│
├── 📂 lab/
│   ├── Vagrantfile                       ← 재현 가능한 취약 VM
│   ├── setup.sh                          ← 연구실 부트스트랩 스크립트
│   └── docker/
│       └── Dockerfile                    ← 취약한 Ubuntu 컨테이너
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← 클라이언트용 보고서 템플릿
│   └── sample-finding.md                ← 샘플 발견 사항 작성
│
└── 📂 assets/
    ├── demo.gif                          ← (선택 사항) 터미널 데모
    └── diagrams/
        └── page-cache-write.png         ← 공격 흐름 다이어그램

🧪 연구실 설정

항상 격리되고 승인된 환경에서 테스트하세요. 절대 프로덕션 시스템에서 익스플로잇을 실행하지 마세요.

옵션 A — Vagrant VM (권장)

# 저장소 복제
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# 취약한 연구실 VM 시작
cd lab/
vagrant up

# 연구실에 SSH 접속
vagrant ssh

# 커널 버전 확인 (취약해야 함)
uname -r

옵션 B — Docker 컨테이너

cd lab/docker/

# 취약한 컨테이너 이미지 빌드
docker build -t copyfail-lab .

# 커널 상호작용을 위한 필수 권한으로 실행
docker run --rm -it --privileged copyfail-lab /bin/bash

시스템 취약 여부 확인

# 빠른 확인 스크립트 실행
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

취약한 시스템에서의 예상 출력:

[!] Kernel version: 5.15.0-91-generic
[!] algif_aead module: LOADED
[✗] System appears VULNERABLE to CVE-2026-31431 (Copy Fail)
[*] Recommended action: Apply kernel update or disable algif_aead
도구 다운로드