
CVE-2024-38063에 대한 심층 기술 분석 및 개념 증명(PoC) 자료로, Windows IPv6 커널의 치명적인 원격 코드 실행(RCE) 취약점입니다. 근본 원인 분석, Scapy 기반 PoC, 교육용 연구를 위한 격리된 실습 환경 가이드를 포함합니다.
| 필드 | 세부 사항 |
|---|
| CVE ID | CVE-2024-38063 |
| 별칭 | IPv6 커널 킬러 |
| 심각도 | 치명적 (CVSS 9.8 / 10) |
| 유형 | 원격 코드 실행 (RCE) |
| 위치 | Windows TCP/IP 스택 (tcpip.sys) |
| 패치 날짜 | 2024년 8월 (Microsoft 패치 화요일) |
| 발견자 | ZeQiao Wu (NSFOCUS TIANQI LAB) |
CVSS 점수 9.8은 즉각적인 패치가 필요한 거의 최대 심각도 문제를 나타냅니다.
이 연구 동안 우리는 다음 작업을 수행했습니다:
CVE 배경 연구
CVE가 무엇인지, MITRE가 식별자를 어떻게 할당하는지, 일반적인 CVE 레코드에 포함된 정보를 설명했습니다.
취약점 특성화
CVE-2024-38063이 "성배" 버그로 간주되는 이유를 문서화했습니다: 인증 불필요, 사용자 상호 작용 없음, 웜 가능성, 기본 활성화된 IPv6, 커널 모드 영향.
IPv6 기초
IPv4와 IPv6의 차이점, 확장 헤더의 역할, IPv6에서 단편화가 다르게 작동하는 이유를 다뤘습니다.
심층 근본 원인 분석
tcpip.sys 내부의 전체 패킷 경로를 추적했습니다:
NET_BUFFER_LIST (NBL) 일괄 처리의 역할Ipv6pProcessOptions 및 IppSendErrorList의 동작Ipv6pReceiveFragment의 정수 언더플로용어 및 난이도 평가
보안 용어, Windows 관련 개념, 각 악용 단계의 상대적 난이도를 설명하는 명확한 표를 작성했습니다.
개념 증명 개발
취약점을 트리거하는 데 필요한 인터리브된 잘못된 Destination Options 패킷과 IPv6 단편을 구성하는 Scapy 기반 Python 스크립트를 구축하고 문서화했습니다.
완전한 격리 실습 가이드
다음에 대한 단계별 지침을 작성했습니다:
bcdedit /set debug on으로 패킷 병합 활성화데모
전체 실습 설정, 스크립트 실행 및 성공적인 크래시를 보여주는 비디오를 녹화했습니다.
패치 검토
공식 2024년 8월 누적 업데이트(KB 번호)와 수정 사항이 경쟁 조건을 제거하는 방법을 문서화했습니다.
이 버그는 여러 고위험 특성을 가지고 있습니다:
tcpip.sys(Ring 0)에 있습니다. 성공적인 악용은 전체 시스템 제어 권한을 부여합니다.이 취약점은 두 개의 IPv6 확장 헤더의 조합으로 트리거됩니다:
Destination Options 헤더 (nh=60)
잘못된 옵션 유형(otype > 0x80)을 포함합니다. 이로 인해 Windows가 ICMPv6 Parameter Problem 오류를 생성합니다.
Fragment 헤더 (nh=44)
패킷이 손상된 후에도 IPv6 재조립 큐에 유지되도록 합니다.
NET_BUFFER_LIST(NBL)로 일괄 처리됩니다.Ipv6pProcessOptions가 잘못된 옵션을 감지하고 NBL을 IppSendErrorList에 전달합니다.IppSendErrorList가 내부 플래그를 잘못 설정하고 동일한 NBL의 후속 패킷을 손상시켜 DataLength를 0으로 강제합니다.Ipv6pReceiveFragment는 페이로드 크기를 0 − HeaderSize로 계산하여 정수 언더플로(페이로드 길이가 약 4GB가 됨)를 발생시킵니다.RtlCopyMemory가 거대한 언더플로된 길이를 복사합니다 → 커널 힙 오버플로.자세한 데이터 흐름 다이어그램과 함수 수준 분석은 전체 문서에서 확인할 수 있습니다.
| 파일 | 용도 |
|---|---|
CVE-2024-38063_Writeup.md | 전체 상세 기술 분석 및 완전한 실습 가이드 |
poc_script.py | Scapy 기반 개념 증명 |
demo_video.mp4 | 비디오 데모 |
README.md | 이 요약 문서 |
세 개의 지원 파일을 저장소 루트에 배치(또는 경로 업데이트)하여 링크가 유지되도록 하세요.
bcdedit /set debug on + 재부팅)하여 패킷 병합 신뢰성을 향상시킵니다.2001:db8::20 → 공격자, 2001:db8::10 → 대상).전체 구성 단계, 문제 해결 매트릭스 및 정리 지침은 문서에 기록되어 있습니다.
Microsoft는 2024년 8월 누적 업데이트의 일부로 수정 사항을 출시했습니다:
| 운영 체제 | KB 번호 |
|---|---|
| Windows 11 | KB5041580 |
| Windows 10 | KB5041583 |
| Windows Server 2022 | KB5041581 |
| Windows Server 2019 | KB5041579 |
이 패치는 영향을 받는 코드 경로에 적절한 잠금을 도입하여 정수 언더플로와 경계를 벗어난 쓰기로 이어진 경쟁 조건을 제거합니다.
이 저장소의 모든 자료(문서, 스크립트 및 비디오)는 교육 및 방어적 보안 연구 전용으로 제공됩니다.
연구 팀