CVE-2026-97631 EDK2 UEFI 固件漏洞分析
漏洞概述
CVE-2026-97631 是一个严重的内存损坏漏洞(评分为 9.5/10),存在于 TianoCore EDK2 代码库中。该代码库是大多数硬件供应商构建 UEFI 固件所使用的基础库。此缺陷位于 PXE Base Code 驱动程序中,具体表现为在基于网络的引导序列期间处理 ICMP 错误消息时存在问题。通过发送畸形的 ICMP 消息,拥有本地网络访问权限的攻击者可以触发缓冲区溢出,从而在操作系统或安全功能(如安全启动和 TPM 认证)初始化之前,在 ring 0 级别执行任意代码。
技术机制
该漏洞源于 NetworkPkg/UefiPxeBcDxe 驱动程序中不正确的边界检查。当驱动程序接收到 ICMP 错误消息时,它会将数据复制到一个固定的 504 字节缓冲区中。该实现未能正确限制消息长度,并错误地推进了目标指针,使攻击者能够用受控数据覆盖相邻内存。由于此过程发生在预执行环境 (PXE) 引导阶段,恶意负载将以最高的 CPU 特权级别执行,从而有效地破坏了硬件的信任链。
范围与影响
尽管由于 EDK2 在服务器和企业硬件中的普遍使用,该漏洞影响广泛,但其利用受到以下几个因素的限制:
- 网络要求: 攻击者必须拥有本地网络的底层访问权限,以便在目标的 PXE 引导序列期间拦截或注入流量。
- 配置依赖: 系统必须启用 PXE 引导并使用受影响的 EDK2 网络栈。许多仅从本地磁盘驱动器引导的标准家庭和小型办公设备不受影响。
- 目标特定性: 成功利用需要针对特定的固件版本调整负载,因为内存地址在不同的硬件型号和配置之间存在差异。
行业响应与缓解措施
该漏洞由 Anthropic 的 Alex Matrosov 和 Google 的 Dan Holmes 发现。在通过 GitHub pull request 过早公开披露后,TianoCore 发布了官方安全公告。建议各组织采取以下措施:
- 更新固件: 应用供应商提供的包含 EDK2 补丁的 BIOS/UEFI 更新。
- 禁用未使用的功能: 如果操作不需要,请禁用网络引导 (PXE) 功能。
- 监控基础设施: 监控引导序列期间的网络日志,查找可疑的 ICMP 流量。
社区观点
安全社区内的讨论凸显了现代固件的复杂性与安全需求之间持续存在的矛盾。评论者指出,UEFI 的“全功能”特性包含数百万行代码,与 coreboot 等更精简的替代方案相比,产生了巨大的攻击面。一些观察人士对严重性评分提出了质疑,指出虽然该漏洞在技术上意义重大,但其实际利用条件(例如强制重启和拥有本地网络访问权限)限制了其在大规模自动化攻击中的效用。
"意图破坏附近终端或服务器的攻击者可以利用此漏洞,在引导过程仍能访问敏感组件(如终端的 TPM)时劫持程序流。" — HD Moore, Dragos 首席研究官。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch