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

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

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)에 대한 개념 증명 익스플로잇으로, 탐지, 랩 및 완화 지침을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

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


CVE CVSS Kernel License Status


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


📖 목차


🔍 Copy Fail이란?

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

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

주요 사실 요약

위험한 이유

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

🔬 기술 심층 분석

근본 원인

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

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

공격 흐름

root@kitploit:~
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년 최적화를 되돌립니다.

root@kitploit:~
# Fixed in commit: a664bf3d603d
git show a664bf3d603d

🖥️ 영향받는 시스템

리눅스 커널 버전

배포판 매트릭스


📁 저장소 구조

root@kitploit:~
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 (권장)

root@kitploit:~
# 저장소 복제
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 컨테이너

root@kitploit:~
cd lab/docker/

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

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

시스템 취약 여부 확인

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

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

root@kitploit:~
[!] 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

패치된 시스템에서의 예상 출력:

root@kitploit:~
[✓] Kernel version: 6.1.132
[✓] System appears PATCHED against CVE-2026-31431 (Copy Fail)

💥 익스플로잇 사용법

필요 조건: 취약한 시스템에서 권한 없는 사용자로 로컬 접근.

전제 조건

root@kitploit:~
# Python 3.6+
python3 --version

# 필수 커널 모듈 존재
lsmod | grep algif_aead

# 대상 바이너리가 읽기 가능한지 확인
ls -la /usr/bin/sudo

PoC 실행

root@kitploit:~
cd exploit/

# 현재 권한 수준 확인
id
# uid=1000(user) gid=1000(user) groups=1000(user)

# Copy Fail PoC 실행
python3 copyfail.py

# 권한 상승 확인
id
# uid=0(root) gid=0(root) groups=0(root)

침투 테스트 워크플로

root@kitploit:~
1. 커널 버전 열거
   └─► uname -r / cat /proc/version

2. algif_aead 로드 확인
   └─► lsmod | grep algif_aead

3. 낮은 권한 진입 확인
   └─► id / whoami

4. Copy Fail PoC 실행
   └─► python3 exploit/copyfail.py

5. 루트 접근 확인
   └─► id && cat /etc/shadow

6. 증거 문서화
   └─► 스크린샷 + 커널 버전, 배포판, 익스플로잇 해시 로깅

7. 완화 적용 (테스트 후)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. 침투 테스트 보고서에 포함
   └─► reports/pentest-report-template.md 사용

🔎 탐지

YARA 규칙

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Detects Copy Fail (CVE-2026-31431) exploit artefacts"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

YARA 스캔 실행:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Sigma 규칙 (SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Copy Fail LPE Exploit Execution (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - Legitimate crypto API testing
level: high

빠른 탐지 스크립트

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

보안 도구 적용 범위


🛡️ 완화

옵션 1 — 커널 패치 적용 (권장)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# 업데이트 후 재부팅
sudo reboot

옵션 2 — algif_aead 모듈 비활성화 (임시)

root@kitploit:~
# 완화 스크립트 실행
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

스크립트가 수행하는 작업:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Module not currently loaded"
echo "[✓] algif_aead disabled. Reboot to confirm persistence."

옵션 3 — Kubernetes 강화

자세한 내용은 mitigation/kubernetes-hardening.md 참조:

  • 포드 보안 정책에서 AF_ALG 소켓 생성 제한
  • socket(AF_ALG, ...) 시스템 호출을 차단하는 Seccomp 프로필
  • Kubernetes 노드 및 CI/CD 러너 우선 패치

📝 침투 테스트 보고

클라이언트용 보고서 템플릿은 reports/pentest-report-template.md에 준비되어 있습니다.

샘플 발견 사항 요약

root@kitploit:~
Finding:    Local Privilege Escalation via Copy Fail (CVE-2026-31431)
Severity:   HIGH (CVSS 7.8)
Host:       10.10.10.55 (ubuntu-prod-01)
Kernel:     5.15.0-91-generic

Evidence:
  - Unprivileged shell (uid=1000) escalated to root (uid=0)
  - Kernel module algif_aead confirmed loaded
  - No disk artefacts — page cache only

Recommendation:
  1. Apply vendor kernel patch immediately
  2. Interim: disable algif_aead module
  3. Review Kubernetes nodes and CI/CD runners

⚖️ 법적 및 윤리

이 저장소의 모든 것을 사용하기 전에 읽으세요.

이 저장소는 합법적인 보안 연구, 승인된 침투 테스트 및 방어적 보안 목적으로만 공개되었습니다.

  • ✅ 허용: 귀하가 소유하거나 명시적인 서면 허가를 받은 시스템에서 테스트
  • ✅ 허용: 격리된 연구실 환경에서 보안 연구
  • ✅ 허용: 방어적 사용 — 탐지, 패치, 강화
  • ❌ 금지: 서면 허가 없이 시스템 테스트
  • ❌ 금지: 프로덕션 시스템에 익스플로잇 배포
  • ❌ 금지: 현지, 국가 또는 국제법을 위반하는 모든 사용

이 자료의 무단 사용은 컴퓨터 사기 및 남용법(CFAA), EU 지침 2013/40/EU, 인도 IT법 2000 및 관할권의 동등한 법률을 위반할 수 있습니다.

저자는 오용에 대해 어떠한 책임도 지지 않습니다. 전체 법적 고지는 DISCLAIMER.md를 참조하세요.


📚 참고 자료


🤝 기여

보안 연구자의 기여를 환영합니다.

  1. 저장소 포크
  2. 기능 브랜치 생성: git checkout -b feat/your-contribution
  3. 변경 사항 커밋: git commit -m "Add: detection rule for X"
  4. 푸시 후 Pull Request 열기

책임 있는 공개 규범을 준수해 주세요. 패치된 시스템을 대상으로 하는 무기화된 프로덕션 준비 익스플로잇 코드는 포함하지 마세요.


보안 커뮤니티를 위해 제작되었습니다 — 책임감 있게 사용하세요.

Follow

도구 다운로드
#섹션설명
1Copy Fail이란?취약점 요약
2기술 심층 분석근본 원인 분석
3영향받는 시스템배포판 및 커널 매트릭스
4저장소 구조파일 레이아웃
5연구실 설정안전하게 재현하기
6익스플로잇 사용법침투 테스트 워크플로
7탐지YARA, Sigma, 스크립트
8완화패치 및 강화
9침투 테스트 보고보고서 템플릿
10법적 및 윤리면책 조항
11참고 자료CVE, 권고문, 블로그
속성세부 사항
CVE IDCVE-2026-31431
별칭Copy Fail
CVSS v3.17.8 (HIGH)
공격 벡터로컬
필요 권한낮음 (임의의 권한 없는 사용자)
사용자 상호작용없음
발견자Xint Code (Theori)
공개일2026년 4월 29일
익스플로잇 크기732바이트 (Python PoC)
패치 상태✅ 사용 가능 — 커밋 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✅ 패치됨권고문
도구탐지 지원
Microsoft Defender (MDVM)✅ 예
Tenable Nessus✅ 예
Qualys✅ 예
Wazuh✅ 사용자 정의 Sigma 규칙을 통해
Palo Alto Cortex XDR✅ 예
CrowdStrike Falcon✅ 예
출처링크
원본 공개 (Xint/Theori)copy.fail
Xint Code 기술 분석xint.io/blog/copy-fail
NVD 항목nvd.nist.gov
Microsoft 보안 블로그microsoft.com/security/blog
Ubuntu 권고문ubuntu.com/blog
CERT-EU 권고문cert.europa.eu
Tenable FAQtenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
CloudLinux 권고문blog.cloudlinux.com
Bugcrowd 분석bugcrowd.com/blog
리눅스 커널 패치kernel.org — commit a664bf3d603d