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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-31431 — 분석 - POC - 완화 | Kitploit
도구/GitHubGitHub/sebastian294/cve-2026-31431
Privilege EscalationVulnerability AnalysisExploitationLearning & EducationBinary ExploitationLabs & Practice
GitHubsebastian294/cve-2026-31431

cve-2026-31431

분석 - POC - 완화

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-31431 — Copy Fail: Linux 커널 LPE 연구 실험실

교육 목적으로만 사용하십시오. 명시적 승인 없이 시스템에 사용하지 마십시오.


목차

  • 취약점 설명
  • 영향 받는 구성 요소
  • 작동 방식
  • 실험실 설정 (Docker)
  • PoC — 시연
  • 완화 조치
  • 참고 자료

취약점 설명

필드값
CVECVE-2026-31431
별칭Copy Fail
CVSS7.8 (High)
유형Local Privilege Escalation (LPE)
영향 받는 커널2017 – 2026 (커밋 72548b093ee3 이후)
업스트림 수정커밋 a664bf3d603d (2017년 되돌리기)
공개 일자2026년 4월 29일 (Theori / Xint Code)

Copy Fail는 Linux 커널 암호화 하위 시스템의 결정론적 (race condition 불필요) 논리적 버그입니다. 이를 통해 권한이 없는 사용자가 시스템에서 읽을 수 있는 모든 파일(예: su 또는 sudo 같은 setuid 바이너리 포함)의 페이지 캐시에 4바이트의 제어된 값을 쓸 수 있습니다.

특히 심각한 이유는?

이전의 유사한 취약점과 달리:


영향을 받는 구성 요소

root@kitploit:~
Linux kernel — crypto/authencesn.c
  └── algif_aead (módulo AF_ALG)
        └── in-place optimization (commit 72548b093ee3, 2017)
              └── AEAD scratch write → cruza boundary del scatterlist
                    └── escribe 4 bytes en page cache de archivo externo

영향 받는 배포판: Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — 2017년 이후 커널을 사용하는 모든 배포판.


작동 방식

Root cause

2017년에 req->src와 req->dst가 동일한 결합된 scatterlist를 가리키도록 하는 최적화가 도입되었습니다. 이로 인해 페이지 캐시(splice()에서 비롯된) 페이지가 쓰기 가능한 대상 scatterlist에 직접 연결됩니다.

익스플로잇 체인

  1. authencesn 알고리즘으로 AF_ALG 소켓 열기
  2. splice()를 사용하여 대상 바이너리의 페이지 캐시 페이지를 AF_ALG 소켓으로 공급 (예: /usr/bin/sudo)
  3. AEAD 복호화 작업 실행
  4. authencesn이 대상 버퍼를 스크래치 패드로 사용 → 합법적 출력 밖으로 seqno_hi(제어된 4바이트)를 쓰고, scatterlist 경계를 넘음
  5. 4바이트가 대상 바이너리의 페이지 캐시 페이지에 도달
  6. 디스크의 파일은 변경되지 않음 → 무결성 검사가 아무것도 감지하지 못함
  7. 메모리에서 수정된 바이너리가 페이로드 실행 → root

은밀한 이유

쓰기는 일반적인 VFS 쓰기 경로를 우회합니다. 디스크의 파일은 그대로 유지됩니다. sha256sum, aide, tripwire 또는 inotify와 같은 도구는 디스크의 파일이나 inode에서 작동하고 메모리의 페이지 캐시에서는 작동하지 않기 때문에 변경을 감지하지 못합니다.


실험실 설정 (Docker)

실험실은 취약한 커널을 사용하여 페이지 캐시 손상을 시연합니다. Docker 환경에서 전체 권한 상승은 호스트 구성(공유 커널)에 따라 달라집니다.

root@kitploit:~
# Clonar el repo

cd cve-2026-31431

# Construir la imagen vulnerable
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# Ejecutar el lab
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# Dentro del contenedor:
cd /lab
python3 exploit/poc.py

요구 사항

  • Docker ≥ 20.x
  • 호스트 커널: 패치되지 않은 5.x 또는 6.x 커널을 사용하는 Ubuntu/Debian (docs/의 표 참조)
  • 컨테이너 내 Python 3.10+ (os.splice 필요)

PoC — 시연

exploit/poc.py 및 exploit/README.md를 참조하십시오.

PoC는 다음을 시연합니다:

  1. 페이지 캐시 손상 (확인 가능)
  2. 대상 파일에 제어된 4바이트 쓰기
  3. 전체 LPE: 호스트 커널에 따라 다름 (참고 사항 참조)

완화 조치

자세한 지침은 mitigation/README.md를 참조하십시오.

요약 — 즉시 완화 (재부팅 불필요):

root@kitploit:~
# Deshabilitar el módulo afectado
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

최종 수정: 패치된 커널 버전(a664bf3d603d 이후)으로 업데이트하십시오.


저장소 구조

root@kitploit:~
cve-2026-31431/
├── README.md                    ← este archivo
├── docs/
│   ├── technical-analysis.md    ← análisis técnico profundo
│   └── affected-kernels.md      ← tabla de versiones afectadas/parcheadas
├── exploit/
│   ├── README.md                ← documentación del PoC
│   └── poc.py                   ← proof of concept (Python 3.10+)
├── mitigation/
│   ├── README.md                ← guía de mitigación
│   ├── disable-algif.conf       ← modprobe config
│   └── check-vulnerable.sh      ← script de detección
├── docker/
│   ├── Dockerfile.vulnerable    ← lab vulnerable
│   └── Dockerfile.patched       ← lab con mitigación aplicada
└── scripts/
    └── setup-lab.sh             ← automatización del lab

공개 타임라인


참고 자료

  • Xint Code — Copy Fail 공식 분석
  • copy.fail — 권고 사이트
  • 공식 GitHub — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu 보안 권고
  • Microsoft 보안 블로그
  • Unit 42 — Palo Alto 분석
  • 업스트림 수정 커밋 a664bf3d603d
도구 다운로드
취약점유형Race 필요?이식성?익스플로잇 크기
Dirty Cow (CVE-2016-5195)CoW 경쟁 상태예부분적~KB
Dirty Pipe (CVE-2022-0847)파이프 버퍼아니오제한적~KB
Copy Fail (CVE-2026-31431)논리적아니오전체732 bytes
날짜이벤트
2017커밋 72548b093ee3이 커널에 버그 도입
~2025Theori/Xint Code가 crypto 하위 시스템 분석 시작
2026년 4월 28일배포판과 조정
2026년 4월 29일공개 + PoC 게시
2026년 5월 1일패치된 커널을 프로덕션 저장소에서 사용 가능
2026년 5월 1일CISA KEV 카탈로그에 추가