Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-98432 — CVE-2026-98432를 위한 Rust 탐지기 및 로컬 랩으로, inet_opt/ireq_opt에서 발생하는 Linux IPv4 TCP use-after-free 취약점을 다룹니다. 정적 ELF 분석, kprobe 도달 가능성 검사, 레이스 트리거를 제공합니다. | Kitploit
도구/GitHubGitHub/alvaroguzmancode/cve-2026-98432
Static AnalysisVulnerability AnalysisExploitationFuzzingPapers & ResearchLabs & Practice
GitHubalvaroguzmancode/cve-2026-98432

cve-2026-98432

CVE-2026-98432를 위한 Rust 탐지기 및 로컬 랩으로, inet_opt/ireq_opt에서 발생하는 Linux IPv4 TCP use-after-free 취약점을 다룹니다. 정적 ELF 분석, kprobe 도달 가능성 검사, 레이스 트리거를 제공합니다.

저장소 보기
26일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-98432 — IPv4 TCP use-after-free (inet_opt / ireq_opt)

일반 IPv4 TCP 리스너에서 도달 가능한 Linux 커널 use-after-free에 대한 연구용 PoC 및 로컬 랩입니다. 이것은 버그 탐지기/트리거이며, 익스플로잇이 아닙니다.

상태

  • 분석된 빌드(7.0.0-38-generic)에서 해당 코드 경로는 취약합니다: inet_sock_destruct()와 tcp_v4_reqsk_destructor()가 옵션을 kfree_rcu() 대신 kfree()로 해제합니다.
  • kfree 경로는 런타임에 도달 가능합니다(kprobes).
  • UAF 자체는 어렵고 간헐적인 레이스입니다. 과거 한 번의 실행에서 두 개의 후보 free -> use 이벤트(via=reqsk)를 관찰했지만, 이를 안정적으로 재현하지는 못했습니다.
  • RCE, KASLR 유출, 쓰기 프리미티브는 구현되지 않았습니다. tcp2kaslr 참조 저장소 역시 버그 트리거 단계에서 멈추며, 이후 단계는 공개되지 않았습니다.
  • 확실한 확인에는 KASAN(또는 KFENCE) 커널이 필요합니다. 테스트 호스트에서는 CONFIG_KASAN이 꺼져 있고 KFENCE 샘플링이 비활성화되어 있습니다.

올바른 벡터 (tcp2kaslr에서 발췌)

MPTCP는 필요하지 않습니다. 입증된 경로는 일반 IPv4 TCP입니다:

  1. 공격자가 IPv4 Record Route 옵션이 포함된 SYN을 전송합니다.
  2. 커널이 요청 소켓(ireq_opt)에 해당 옵션을 저장합니다.
  3. 재전송된 SYN이 SYNACK을 생성하고 해당 옵션을 읽습니다.
  4. 핸드셰이크가 완료되고, 자식 소켓이 동일한 포인터를 받습니다.
  5. 애플리케이션이 자식 소켓을 accept()하고 SO_LINGER(0)을 설정한 뒤 닫습니다. inet_sock_destruct()가 옵션을 kfree()로 해제합니다.
  6. SYNACK 경로는 여전히 해제된 메모리를 읽고 있습니다.
  7. 동시 읽기/쓰기는 두 개의 CPU에서 발생해야 합니다.

이전 트리거는 두 가지 점에서 잘못되었습니다: victim이 자식 소켓을 accept/close하지 않았고(free_sock=0), 서버 close에 의존하지 않고 RST를 전송했습니다. 현재 코드는 올바른 요소들을 추가합니다:

  • listen --accept-close — accept + SO_LINGER(0) + close.
  • --sync — ACK + 중복 SYN 동시 전송, RST 없음, Record Route 옵션 사용.

업스트림 수정은 정확히 다음과 같습니다:

-    kfree(rcu_dereference_protected(inet->inet_opt, 1));
+    kfree_rcu(rcu_dereference_protected(inet->inet_opt, 1), rcu);

tcp_v4_reqsk_destructor()의 동일한 변경 사항입니다.

목차

경로설명
rust-poc/네이티브 Rust PoC: 정적 ELF 분석, kprobes, 트리거 모드
lab/기존 로컬 테스트용 Alpine + PHP 루프백 피해자
scripts/로컬 재현 도우미, 승인된 감사 도우미
docs/FINDINGS.md테스트한 내용, 확인된 내용, 확인되지 않은 내용
docs/EXPLOITATION-NOTES.md범위: 버그 트리거만 해당, RCE 없음
docs/evidence/정제된 샘플 증거

빠른 시작

cd rust-poc
cargo build --release

# static analysis (no root)
./target/release/cve-2026-98432 static

# runtime reachability (root, tracefs)
sudo ./target/release/cve-2026-98432 runtime

# correct local vector: accept+close server + --sync trigger
cd ..
PASSES=1 ./scripts/repro-sync.sh 8083

repro-sync.sh는 127.0.0.1:8083에서 --accept-close 희생자를 시작하고, sudo로 동기화 트리거를 실행한 뒤 free_sock, use_build 및 UAF 판정을 출력합니다. 깨끗한 실행이 안전성의 증거는 아닙니다: 발생률은 시도당 대략 1e-7이며 이벤트가 군집화됩니다.

artifacts/가 없으면 static/runtime은 /boot로 대체됩니다. 레거시 scripts/cve-2026-98432.sh --static이 커널 아티팩트를 생성할 수 있습니다.

양성 결과의 모습

KASAN을 사용하면 커널은 inet_csk_route_req / ip_options_build에서 slab-use-after-free를 보고하며, 해제 스택은 inet_sock_destruct / inet_release에 있습니다. tcp2kaslr 하네스는 KASAN과 함께 약 134k회 시도에서 이에 도달합니다. 일반 커널에서는 동일한 경쟁 조건이 약 48M회 시도 중 단 두 번만 관찰되었습니다.

책임 있는 사용

소유하거나 명시적으로 테스트 권한을 부여받은 커널과 호스트만 테스트하십시오. 이 트리거는 커널 경쟁 조건이며 호스트를 충돌시킬 수 있습니다. 스냅샷이 있는 일회용 VM을 사용하십시오.

참고 자료

  • offline-ant/tcp2kaslr — 버그 트리거, KASAN 증거, 분석: https://github.com/offline-ant/tcp2kaslr
  • 업스트림 패치: ipv4: free inet_opt and ireq_opt after an RCU grace period (Eric Dumazet), net/ipv4/af_inet.c 및 net/ipv4/tcp_ipv4.c에서 kfree → kfree_rcu.

라이선스

MIT. LICENSE를 참조하십시오.

도구 다운로드