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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-43494-PinTheft-PoC — CVE-2026-43494 (PinTheft)에 대한 개념 증명(PoC): RDS zerocopy refcount 버그 + io_uring 고정 버퍼를 통한 Linux LPE → SUID 페이지 캐시 덮어쓰기. 승인된 연구 목적으로만 사용하십시오. | Kitploit
도구/GitHubGitHub/jayhutajulu1/cve-2026-43494-pintheft-poc
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationLearning & EducationBinary ExploitationLabs & Practice
GitHubjayhutajulu1/cve-2026-43494-pintheft-poc

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-43494-PinTheft-PoC

CVE-2026-43494 (PinTheft)에 대한 개념 증명(PoC): RDS zerocopy refcount 버그 + io_uring 고정 버퍼를 통한 Linux LPE → SUID 페이지 캐시 덮어쓰기. 승인된 연구 목적으로만 사용하십시오.

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

SLEY — PinTheft PoC (CVE-2026-43494)

SLEY PoC — uid 1000 to root on WSL2

Proof of concept — uid=1000(raken) → uid=0(root) after ./sley on WSL2 (6.6.87.2-microsoft-standard-WSL2)

CVE-2026-43494 Linux LPE io_uring RDS

CVE-2026-43494(PinTheft)에 대한 단일 파일 PoC입니다. RDS zerocopy 참조 카운트 버그와 **io_uring 고정 버퍼(fixed buffers)**를 연결하여 SUID-root 바이너리의 페이지 캐시를 덮어쓰는 Linux 커널 로컬 권한 상승입니다.

면책 조항: 이 저장소는 공인된 보안 연구, 교육, 방어적 테스트 목적으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 허가가 없는 시스템에서 실행하는 것은 불법이며 비윤리적입니다. 저자는 오용에 대해 어떠한 책임도 지지 않습니다.


개요

원본 공개 연구 및 PoC는 V12 Security 팀(Aaron Esau)이 발표했습니다. SLEY는 독립적이고 간결한 재구현으로, 실습실 사용과 학습을 위한 스타일링된 터미널 UI를 제공합니다.


작동 원리

root@kitploit:~
flowchart LR
    A[mmap anonymous page] --> B[io_uring: register fixed buffer]
    B --> C[Clone buffer table to 2nd ring]
    C --> D[1024× failing RDS zerocopy sends]
    D --> E[Drain FOLL_PIN bias / steal refs]
    E --> F[munmap → page freed]
    F --> G[SUID binary page reclaimed in page cache]
    G --> H[Stale io_uring ptr writes ELF stub]
    H --> I[exec SUID → root shell]
  1. 정찰(Recon) — CPU 0에 고정하고, 읽을 수 있는 SUID 바이너리(su, mount, passwd, …)를 찾습니다.
  2. io_uring 설정 — 익명 페이지를 고정 버퍼로 등록합니다(FOLL_PIN 바이어스 ≈ 1024).
  3. 핀 탈취(Pin theft) — 실패하는 RDS zerocopy 전송을 대량으로 발생시킵니다. 각 실패는 첫 번째 고정 페이지에서 추가 참조를 누락시킬 수 있습니다.
  4. 재확보 및 덮어쓰기 — 언맵(unmap)으로 페이지가 해제됩니다. SUID 대상을 다시 열면 페이지 캐시 재확보 경쟁이 발생합니다. 오래된 고정 버퍼 메타데이터를 이용해 작은 x86_64 ELF 스텁을 캐시에 씁니다.
  5. 권한 상승(Privesc) — execve로 SUID 바이너리를 실행하면 주입된 스텁이 root 권한으로 실행됩니다.

요구 사항

커널 / 설정

  • RDS 버그가 존재하는 취약한(패치되지 않은) Linux 커널
  • CONFIG_RDS=y 및 CONFIG_RDS_TCP=y
  • CONFIG_IO_URING=y 및 kernel.io_uring_disabled = 0
  • rds / rds_tcp 모듈 로드됨(또는 비특권 사용자가 자동 로드 가능)
  • 공개 체인에서 사용하는 IORING_REGISTER_CLONE_BUFFERS API를 위한 커널 ≥ 6.13
  • 이 PoC에 포함된 셸 ELF 페이로드를 위한 x86_64

빌드 도구

root@kitploit:~
sudo apt install build-essential linux-libc-dev   # Debian/Ubuntu
# 또는 배포판에 해당하는 헤더 패키지

권한

  • 취약한 호스트에서는 비특권 로컬 사용자로 충분합니다(이것이 위협 모델입니다)
  • 프로덕션 시스템에서는 실행하지 마십시오

노출 확인(읽기 전용)

root@kitploit:~
# 패치됨? (예시 — 배포판에 맞게 조정하세요)
uname -r
grep -r CVE-2026-43494 /usr/share/doc/linux* 2>/dev/null || true

# RDS 사용 가능?
grep CONFIG_RDS /boot/config-$(uname -r) 2>/dev/null
lsmod | grep -E '^rds'

# io_uring 활성화?
cat /proc/sys/kernel/io_uring_disabled  # 0이어야 함

빌드

root@kitploit:~
gcc -O2 -Wall -Wextra -o sley sley.c

정적 링크(선택 사항, 최소 실습 이미지용):

root@kitploit:~
gcc -O2 -static -o sley sley.c

사용법

root@kitploit:~
./sley

모든 상태 출력은 stderr로 전달됩니다(ANSI 256색 UI, 진행 바, 단계별 로그). 단계별 로그와 UI를 표시하려면 터미널이 UTF-8과 트루컬러/256색을 지원해야 합니다.

단계 예시:

root@kitploit:~
PHASE 1 │ Reconnaissance
PHASE 2 │ Memory & io_uring setup
PHASE 3 │ Pin reference theft (RDS zerocopy)
PHASE 4 │ Page cache overwrite & privesc

기대 결과(취약한 호스트)

성공적으로 익스플로잇된 구성에서는 체인이 완료되고 첫 페이지가 덮어써진 SUID 바이너리로 핸드오프되어, 레이스와 커널 상태가 일치하면 root 셸을 얻습니다.

패치된 커널, 강화된 호스트, 또는 RDS/io_uring이 없는 환경에서는 PoC가 조기에 실패합니다(SUID 대상 없음, mmap/io_uring/socket 오류 등).


완화 조치

배포판별 보안 권고는 백포트 패치를 제공할 수 있습니다. 공급업체의 커널 보안 큐를 확인하세요.


프로젝트 구조

root@kitploit:~
.
├── README.md              # This file
├── proof-of-concept.jpg   # Screenshot: successful LPE (uid 1000 → root)
├── sley.c                 # Single-file PoC + terminal UI
└── .gitignore

참고 자료

  • NVD — CVE-2026-43494
  • oss-security — PinTheft discussion
  • Kernel fix commit

법적 고지

본 소프트웨어는 연구 및 교육 목적으로 있는 그대로(as-is) 제공됩니다. 소유하지 않은 시스템을 테스트하기 전에 관련 법률을 준수하고 서면 승인을 받을 책임은 사용자에게 있습니다.


라이선스

MIT — 추가된 경우 저장소의 라이선스 파일을 참조하세요. 책임감 있게 사용하세요.

도구 다운로드
항목세부 사항
CVECVE-2026-43494
공개 이름PinTheft
구성 요소net/rds — zerocopy 전송 경로(rds_message_zcopy_from_user)
원시(primitive)페이지 핀 실패 시 이중 put_page() → FOLL_PIN 참조 탈취
무기화(Weaponization)io_uring 고정 버퍼 + 실패하는 RDS zerocopy → 페이지 캐시 UAF 쓰기
영향취약한 구성에서 로컬 루트 권한 획득
업스트림 수정e17492979319
조치설명
커널 패치커밋 e17492979319을 포함하는 안정 버전 수정 적용
RDS 비활성화필요하지 않으면 modprobe -r rds_tcp rds(및 자동 로드 차단)
io_uring 제한sysctl로 kernel.io_uring_disabled=1 또는 2 설정
최소 권한불필요한 SUID 바이너리 제거, 강화된 프로파일의 컨테이너 사용
모니터링대량의 RDS zerocopy 실패 + io_uring 버퍼 등록 패턴에 대한 경고 설정