本仓库包含我们对 CVE-2024-38063 的研究与分析,这是 Windows TCP/IP 协议栈中的一个严重漏洞。
CVE 是 Common Vulnerabilities and Exposures(通用漏洞与披露)的缩写。它是由 MITRE 公司维护的、公开披露的网络安全缺陷标准化字典。每个条目都会获得一个格式为 CVE-年份-编号 的唯一标识符。
| 字段 | 详情 |
|---|---|
| CVE ID | CVE-2024-38063 |
| 别名 | IPv6 内核杀手 |
| 严重性 | 严重(CVSS 9.8 / 10) |
| 类型 | 远程代码执行(RCE) |
| 位置 | Windows TCP/IP 协议栈(tcpip.sys) |
| 补丁日期 | 2024 年 8 月(微软补丁星期二) |
| 发现者 | ZeQiao Wu(绿盟科技天穹实验室) |
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 特定概念,以及每个利用阶段的相对难度。
概念验证开发
构建并记录了一个基于 Scapy 的 Python 脚本,该脚本构造所需的交错无效目标选项数据包和 IPv6 分片以触发该漏洞。
完整的隔离实验环境指南
编写了分步说明,涵盖:
bcdedit /set debug on 启用数据包合并演示
录制了一段视频,展示完整的实验环境搭建、脚本执行以及成功崩溃的过程。
补丁审查
记录了 2024 年 8 月官方累积更新(KB 编号)以及该修复如何消除竞态条件。
该漏洞具备多项高风险特征:
tcpip.sys(Ring 0)。成功利用可获得完整的系统控制权。该漏洞由两个 IPv6 扩展头的组合触发:
目标选项头(nh=60)
包含一个无效的选项类型(otype > 0x80)。这会强制 Windows 生成 ICMPv6 参数问题错误。
分片头(nh=44)
即使数据包已被破坏,仍将其保留在 IPv6 重组队列中。
NET_BUFFER_LIST(NBL)。Ipv6pProcessOptions 检测到错误选项,并将 NBL 交给 IppSendErrorList。IppSendErrorList 错误地设置了一个内部标志,并破坏同一 NBL 中的后续数据包,将其 DataLength 强制为零。Ipv6pReceiveFragment 将有效负载大小计算为 0 − HeaderSize,导致整数下溢(有效负载长度变为约 4 GB)。RtlCopyMemory 复制了巨大的下溢长度 → 内核堆溢出。详细的数据流图和函数级分析可在完整报告中查看。
| 文件 | 用途 |
|---|---|
CVE-2024-38063_Writeup.md | 完整详细的技术分析和完整的实验环境指南 |
poc_script.py | 基于 Scapy 的概念验证 |
demo_video.mp4 | 视频演示 |
请将三个支持文件放在仓库根目录(或更新路径),以保持链接有效。
bcdedit /set debug on + 重启)以提高数据包合并的可靠性。2001:db8::20 → 攻击者,2001:db8::10 → 目标)。完整的配置步骤、故障排查矩阵和清理说明已记录在报告中。
微软在 2024 年 8 月累积更新中发布了修复程序:
| 操作系统 | KB 编号 |
|---|---|
| Windows 11 | KB5041580 |
| Windows 10 | KB5041583 |
| Windows Server 2022 | KB5041581 |
| Windows Server 2019 | KB5041579 |
该补丁在受影响的代码路径周围引入了正确的锁定机制,消除了导致整数下溢和越界写入的竞态条件。
本仓库中的所有材料(报告、脚本和视频)仅供教育和防御性安全研究使用。
研究团队
README.md | 本摘要文档 |