全球绝大多数服务器受此固件代码执行漏洞威胁
全球各地的防御者再次面临应对代码执行漏洞的重担,这次的问题出在大多数全球服务器厂商和数据中心使用的启动固件中——这已是“又一次”漏洞响应。
该漏洞的严重程度评分高达9.5/10,存在于TianoCore EDK II 中。EDK II 是一个开源代码库,硬件制造商和云服务商用它来创建在启动序列中运行的 UEFI 固件。去年,UEFI 论坛的一位代表称EDK2 是“UEFI 规范的顶尖解决方案/实现”。几乎所有 UEFI 供应商(有时仍被称为 IBV 或独立 BIOS 厂商),包括 AMI、Insyde 和 Phoenix,都大量使用这些参考代码。微软的加固版 EDK2 分支 Project Mu 也使用了包含该漏洞组件的代码。
该漏洞被记录为 CVE-2026-97631,是 ICMP 组件中的一个内存损坏缺陷。攻击者可利用它执行恶意代码,这些代码在操作系统和固件实施 Secure Boot 等防御措施之前运行。Secure Boot 会为所有在启动过程中加载的代码(包括 Trusted Platform Module,即 TPM)建立信任链。虽然通过 CVE-2026-97631 传递的最终载荷没有持久性——意味着它们只运行一次——但它们可以为攻击者提供一个宽阔的窗口,用于安装其他载荷,这些载荷同样会在启动过程早期每次运行时执行。
祸水已出笼
发现 CVE-2026-97631 的两方——Anthropic 的 Alex Matrosov 和 Google 的 Dan Holmes——原本约定将该漏洞保密,直到原定于明年 1 月的协同披露。但主板及其他硬件制造商 AMI 上个月发布了一份 pull request,详细描述了该漏洞并附上代码修复。发现方注意到这份 PR 后,TianoCore 项目成员于上周发布了公开安全通告。补丁代码已经公开,高级黑客想要弄清漏洞的触发方式并打造可用的 exploit 并非难事。更紧迫的是,这个 UEFI 漏洞影响数以百万计的终端设备,这些设备由数千家硬件厂商和云服务提供商销售和使用,要为它们打补丁既繁琐又耗时。而这已经是六天内第二次披露事故——上一次涉及 PHP 编程语言中的一个严重代码执行漏洞。
“EDK2 网络栈中这个 ICMP 解析器漏洞的有趣之处在于,它对信任链和整个生态的影响,” Metasploit 的缔造者、安全公司 Dragos 首席研究官 HD Moore 表示,“意图攻击附近终端或服务器的攻击者,可以利用这个漏洞在启动流程仍能访问敏感组件(比如终端的 TPM)的阶段劫持程序执行流。在攻击者拥有短期网络访问权限的场景下,这可以用来破解磁盘加密(如果是设备失窃,那就更容易了)。”
CVE-2026-97631 是 PXE 基础代码驱动(NetworkPkg/UefiPxeBcDxe)中存在的一个长达 16 年的缓冲区溢出漏洞。该驱动负责让服务器、存储设备及其他硬件通过下载本地网络代码来启动。在这个被称为预执行环境启动的过程中,驱动使用网络监听器来监控 ICMP 错误。由于驱动未强制执行 504 字节的内存拷贝限制,内部威胁者或已获得本地网络底层访问权限的黑客可以发送一条错误消息,将代码追加到该限制之外。随后,在 CPU 上运行的 UEFI 模块就会被破坏。
正如官方安全通告所述:
在网络启动期间,PXE 基础代码驱动(NetworkPkg/UefiPxeBcDxe)保持一个接收请求开放,用于处理 ICMP 错误消息,并将每条收到的消息复制到其私有上下文结构中固定的 504 字节字段 Mode.IcmpError。拷贝循环的边界处理在 IPv4 和 IPv6 处理程序中均存在错误(PxeBcIcmpErrorDpcHandle 和 PxeBcIcmp6ErrorDpcHandle):对于超过 504 字节的消息,系统仍会继续拷贝字节;同时,目标指针按照累积长度而非单个片段长度进行推进,导致超尺寸消息将攻击者控制的字节写入字段之外。在接收路径的早期阶段,没有任何机制限制消息长度。
只要是在 PXE 启动序列期间,攻击者就能通过从任意网络距离向目标设备 IP 地址发送简单的单播数据报来投递恶意错误包。攻击者可以通过导致启动序列挂起来实施拒绝服务攻击。当攻击者知晓目标固件的具体构建版本时,还可以植入一个“伪事件”,使其恶意代码在 CPU 的 UEFI 固件环境中执行。该代码在 ring 0 运行,这是 CPU 的最高特权执行级别。由于此类漏洞利用可绕过旨在向远程服务器密码学证明硬件安全性的认证流程,因此为提升有限权限提供了关键机会。
又一个永恒的难题
CVE-2026-97631 加入了一份漫长的清单,记录着此前在 UEFI 或与其密切相关的代码中发现的诸多漏洞。其中后果最严重的当属 LogoFail,它源于几乎所有硬件厂商 UEFI 中嵌入的 Logo 图像。渲染漏洞允许攻击者破坏 UEFI 强制执行的信任链,进而在操作系统加载或 Secure Boot 运行之前植入恶意组件。PixieFail 则是一个与 CVE-2026-97631 类似的漏洞,同样源自 EDK2 中缺陷的 PXE 启动机制。在发现该漏洞后,研究人员启动了多个模糊测试(项目),旨在挖掘开源代码库中的其他关键缺陷。但事实证明,这些努力未能发现最新的这一漏洞。
近期发现的其他 UEFI 漏洞包括:
- PKFail,这是一起供应链失败事件,起因是用于数百种设备型号的非生产测试平台密钥,这些密钥已公开超过十年才被发觉;
- BootHole;
- Bootkit;以及
- BlackLotus。