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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
page-cache-corruption-lpes — CVE-2026-46331 및 CVE-2026-43503 | Kitploit
도구/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Privilege EscalationVulnerability AnalysisExploitationCTFLearning & EducationBinary Exploitation
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 및 CVE-2026-43503

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

페이지 캐시 손상 LPE

Linux 커널 로컬 권한 상승 익스플로잇 3종. Dirty COW 및 Dirty Pipe와 동일한 버그 클래스. 몇 초 만에 루트 셸. 모든 주요 배포판이 영향받음.

세 익스플로잇 모두 커널의 페이지 캐시 — 프로세스가 실제로 읽고 실행하는 파일의 메모리 내 복사본 — 를 손상시킵니다. 디스크의 파일은 절대 건드리지 않습니다. 파일 무결성 도구는 아무것도 감지하지 못합니다. execve("/usr/bin/su")가 캐시에서 로드 → 셸코드 실행 → root.


익스플로잇

익스플로잇CVE메커니즘루트까지 걸리는 시간라인 수
Dirty PeditCVE-2026-46331TC pedit COW 갭 (u32 랩어라운드)< 1초275
skb_shiftCVE-2026-43503TCP SACK frag 전송 플래그 손실~10초500
GRO Flag LossCVE-2026-43503GRO 병합 시 frag 전송 플래그 손실~10초550

세 가지 모두: 비특권 → root. 특별한 권한 없음. 사용자 네임스페이스만 있으면 됨.


이 버그 클래스는 무엇인가?

이 저장소의 모든 익스플로잇은 동일한 패턴을 따릅니다:

root@kitploit:~
1. Get page-cache pages into a kernel buffer (splice)
2. Bypass the copy-on-write defense
3. Write in-place → read-only file corrupted in memory

차이점은 방어가 어떻게 우회되는지, 그리고 무엇이 쓰기를 수행하는지입니다:


계보

root@kitploit:~
2016  Dirty COW         COW race via mmap + fork
2022  Dirty Pipe        Stale PIPE_BUF_FLAG_CAN_MERGE in splice
2026  Copy Fail         AF_ALG in-place AEAD on page-cache scatterlist
2026  Dirty Frag        ESP skip_cow on splice'd frags (missing flag)
2026  Fragnesia         skb_try_coalesce drops SHARED_FRAG flag
2026  Dirty Pedit  ←    TC pedit COW gap, no crypto needed
2026  skb_shift    ←    TCP SACK drops SHARED_FRAG, ESP writes
2026  GRO Flag Loss ←   GRO merge drops SHARED_FRAG, ESP writes

영향받는 버전

기본 구성입니다. 취약해지기 위해 하드닝이 필요하지 않습니다. Linux를 실행 중이라면 영향을 받았습니다.


Dirty Pedit이 다른 이유

skb_shift와 GRO는 동일한 익스플로잇 기법을 사용합니다: SKBFL_SHARED_FRAG 플래그를 잃게 만든 다음, 미리 계산된 IV 조회 테이블을 사용해 ESP 암호화가 페이지 캐시 페이지에 한 번에 1바이트씩 XOR 연산을 수행하게 합니다.

Dirty Pedit은 완전히 다른 방식입니다:

  • 암호화 불필요. XFRM, ESP, AES-GCM, IV 테이블이 없습니다.
  • 직접 쓰기. TC pedit는 skb_store_bits를 통해 지정한 바이트를 정확히 기록합니다.
  • 1초 미만. 패킷 하나 = 12바이트 기록. 한 번에 root.
  • 다른 방어 우회. SHARED_FRAG를 전혀 건드리지 않음 — 정수 랩어라운드를 통해 skb_ensure_writable을 무력화합니다.

빌드

root@kitploit:~
# Build all three
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

각 익스플로잇은 단일 자체 포함 C 파일입니다. libc 외에는 의존성이 없습니다.


실행

root@kitploit:~
# Any of the three (as unprivileged user):
./exploit
# → root shell

요구 사항: 영향받는 버전 범위의 Linux 커널 + CONFIG_USER_NS=y (모든 주요 배포판의 기본값).


출력 (Dirty Pedit)

root@kitploit:~
[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

출력 (skb_shift / GRO)

root@kitploit:~
[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

주요 속성


책임 있는 공개

모든 취약점은 Linux 커널 보안 팀과 네트워킹 유지보수자에게 책임 있게 공개되었습니다. 패치는 업스트림에 병합되었고 안정 트리에 백포트되었습니다.

  • CVE-2026-46331: v7.1-rc7에서 수정됨, 커밋 899ee91156e5
  • CVE-2026-43503: v7.1-rc5에서 수정됨, 커밋 48f6a5356a33

이 익스플로잇은 패치가 적용 가능해진 이후 교육 및 방어 목적으로 공개되었습니다. 페이지 캐시 손상은 메모리 전용입니다 — 재부팅하거나 echo 1 > /proc/sys/vm/drop_caches를 실행하면 원래 파일이 복원됩니다.


작성자

Rajat Gupta — Qualcomm 오펜시브 시큐리티


라이선스

MIT

도구 다운로드
익스플로잇우회된 방어쓰기 수행자
Dirty Peditskb_ensure_writable (u32 랩어라운드 → 부분 COW)skb_store_bits (직접 4바이트 쓰기)
skb_shiftSKBFL_SHARED_FRAG 플래그가 TCP SACK 중 손실됨ESP AES-GCM 복호화 (패킷당 1바이트)
GRO Flag LossSKBFL_SHARED_FRAG 플래그가 GRO 병합 중 손실됨ESP AES-GCM 복호화 (패킷당 1바이트)
익스플로잇도입수정됨영향받는 배포판
Dirty Peditv5.18 (2022년 5월)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc513년간 모든 배포판
GRO Flag Lossv3.9 (2013)v7.1-rc513년간 모든 배포판
속성Dirty Peditskb_shiftGRO
권한없음 (userns)없음 (userns)없음 (userns)
파일 접근O_RDONLYO_RDONLYO_RDONLY
암호화 필요아니요예 (AES-GCM)예 (AES-GCM)
쓰기 제어패킷당 4바이트패킷당 1바이트패킷당 1바이트
신뢰성결정적결정적확률적 (재시도)
K8s 컨테이너 탈출아니요 (veth 불필요)아니요예 (veth+GRO 기본)
공격 표면geneve + TCloopback + espintcpveth + ESP-in-UDP