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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-43494-PinTheft-PoC — CVE-2026-43494(PinTheft)에 대한 개념 증명: RDS zerocopy 참조 카운트 버그와 io_uring 고정 버퍼를 악용하여 SUID 바이너리 페이지 캐시를 덮어쓰는 Linux 커널 로컬 권한 상승. | Kitploit
도구/GitHubGitHub/letsr00t/cve-2026-43494-pintheft-poc
Privilege EscalationVulnerability AnalysisExploitationCTFLearning & EducationBinary ExploitationLabs & Practice
GitHubletsr00t/cve-2026-43494-pintheft-poc

CVE-2026-43494-PinTheft-PoC

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-43494(PinTheft)에 대한 개념 증명: RDS zerocopy 참조 카운트 버그와 io_uring 고정 버퍼를 악용하여 SUID 바이너리 페이지 캐시를 덮어쓰는 Linux 커널 로컬 권한 상승.

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

SLEY — PinTheft PoC (CVE-2026-43494)

SLEY PoC — WSL2에서 uid 1000 → root

개념 증명 — WSL2(6.6.87.2-microsoft-standard-WSL2)에서 ./sley 실행 후 uid=1000(raken) → uid=0(root)

CVE-2026-43494 Linux LPE io_uring RDS

CVE-2026-43494(PinTheft)를 위한 단일 파일 개념 증명(PoC)입니다. RDS zerocopy 참조 카운트 버그와 io_uring 고정 버퍼를 연쇄적으로 사용하여 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. 정찰 — CPU 0에 고정하고 읽을 수 있는 SUID 바이너리(su, mount, passwd, …)를 찾습니다.
  2. io_uring 설정 — 익명 페이지를 고정 버퍼로 등록합니다(FOLL_PIN 바이어스 ≈ 1024).
  3. 핀 탈취 — 실패하는 RDS zerocopy 전송을 플러딩합니다. 각 실패는 첫 번째 고정 페이지에서 추가 참조를 해제할 수 있습니다.
  4. 재확보 및 덮어쓰기 — 언맵(unmap)으로 페이지가 해제되고, SUID 대상을 다시 열면 페이지 캐시 재확보와 경쟁합니다. 오래된 고정 버퍼 메타데이터로 캐시에 작은 x86_64 ELF 스텁을 쓸 수 있습니다.
  5. 권한 상승 — SUID 바이너리를 execve하면 삽입된 스텁이 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
# or equivalent headers package on your distro

권한

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

노출 확인(읽기 전용)

root@kitploit:~
# Patched? (example — adjust for your distro)
uname -r
grep -r CVE-2026-43494 /usr/share/doc/linux* 2>/dev/null || true

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

# io_uring enabled?
cat /proc/sys/kernel/io_uring_disabled  # expect 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 및 truecolor/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)
프리미티브페이지 핀 실패 시 put_page() 이중 호출 → FOLL_PIN 참조 탈취
무기화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 버퍼 등록 패턴에 대한 알림