
In-depth technical analysis and proof-of-concept for CVE-2024-38063, a critical Windows IPv6 kernel RCE. Includes root-cause breakdown, Scapy-based PoC, and isolated lab guide for educational research.
This repository contains our research and analysis of CVE-2024-38063, a critical vulnerability in the Windows TCP/IP stack.
CVE stands for Common Vulnerabilities and Exposures. It is a standardized dictionary of publicly disclosed cybersecurity flaws maintained by the MITRE Corporation. Each entry receives a unique identifier in the format CVE-YEAR-NUMBER.
| Field | Detail |
|---|---|
| CVE ID | CVE-2024-38063 |
| Nickname | The IPv6 Kernel Killer |
| Severity | Critical (CVSS 9.8 / 10) |
| Type | Remote Code Execution (RCE) |
| Location | Windows TCP/IP Stack (tcpip.sys) |
| Patch Date | August 2024 (Microsoft Patch Tuesday) |
| Discovered By | ZeQiao Wu (NSFOCUS TIANQI LAB) |
A CVSS score of 9.8 indicates an almost maximum-severity issue that requires immediate patching.
During this research we performed the following work:
CVE Background Study
Explained what a CVE is, how identifiers are assigned by MITRE, and what information a typical CVE record contains.
Vulnerability Characterization
Documented why CVE-2024-38063 is considered a “holy grail” bug: no authentication, no user interaction, wormable potential, IPv6 enabled by default, and kernel-mode impact.
IPv6 Fundamentals
Covered the differences between IPv4 and IPv6, the role of extension headers, and why fragmentation works differently in IPv6.
Deep Root-Cause Analysis
Traced the complete packet path inside tcpip.sys:
NET_BUFFER_LIST (NBL) batchingIpv6pProcessOptions and IppSendErrorListIpv6pReceiveFragmentTerminology & Difficulty Assessment
Created clear tables explaining security terms, Windows-specific concepts, and the relative difficulty of each exploitation stage.
Proof-of-Concept Development
Built and documented a Scapy-based Python script that constructs the required interleaved invalid Destination Options packets and IPv6 fragments to trigger the vulnerability.
Complete Isolated Lab Guide
Wrote step-by-step instructions for:
The bug possesses several high-risk characteristics:
tcpip.sys (Ring 0). Successful exploitation grants full system control.The vulnerability is triggered by a combination of two IPv6 extension headers:
Destination Options Header (nh=60)
Contains an invalid option type (otype > 0x80). This forces Windows to generate an ICMPv6 Parameter Problem error.
Fragment Header (nh=44)
Keeps the packets in the IPv6 reassembly queue even after they have been corrupted.
NET_BUFFER_LIST (NBL).Ipv6pProcessOptions detects the bad option and hands the NBL to IppSendErrorList.IppSendErrorList incorrectly sets an internal flag and corrupts subsequent packets in the same NBL, forcing their DataLength to zero.Ipv6pReceiveFragment calculates payload size as 0 − HeaderSize, causing an integer underflow (payload length becomes ~4 GB).RtlCopyMemory copies the massive underflowed length → kernel heap overflow.A detailed data-flow diagram and function-level analysis are available in the full write-up.
| File | Purpose |
|---|---|
CVE-2024-38063_Writeup.md | Full detailed technical analysis and complete lab guide |
poc_script.py |
Place the three supporting files in the repository root (or update the paths) so they remain linked.
bcdedit /set debug on + reboot) to improve packet coalescing reliability.2001:db8::20 → attacker, 2001:db8::10 → target).Full configuration steps, troubleshooting matrix, and cleanup instructions are documented in the write-up.
Microsoft released the fix as part of the August 2024 Cumulative Updates:
| Operating System | KB Number |
|---|---|
| Windows 11 | KB5041580 |
| Windows 10 | KB5041583 |
| Windows Server 2022 | KB5041581 |
| Windows Server 2019 | KB5041579 |
The patch introduces proper locking around the affected code paths, eliminating the race condition that led to the integer underflow and out-of-bounds write.
All materials in this repository (write-up, script, and video) are provided exclusively for educational and defensive security research.
RFC 8200: STD 86: Internet Protocol, Version 6 (IPv6) Specification
Research Team
bcdedit /set debug onDemonstration
Recorded a video showing the full lab setup, script execution, and successful crash.
Patch Review
Documented the official August 2024 cumulative updates (KB numbers) and how the fix eliminates the race condition.
| Scapy-based Proof-of-Concept |
demo_video.mp4 | Video demonstration |
README.md | This summary document |