返回

文章详情

UEFI固件中的代码执行漏洞威胁地球上大多数服务器

Ars Technica2026年10月27日 20:25

打破信任链 EDK2中的关键漏洞允许攻击者在启动过程中早期执行代码。图片来源:Getty Images全球的防御者面临着应对又一个失败的代码执行漏洞的重担,这次漏洞出现在世界上大多数服务器供应商和数据中心使用的启动时间固件中。该漏洞的严重性评级为10分中的9.5,位于TianoCore EDK II,这是一个开源代码库,硬件制造商和云服务提供商用于创建在启动序列中运行的UEFI固件。去年,UEFI论坛的一名代表称EDK2为“UEFI规范的首屈一指解决方案/实现”。几乎所有UEFI供应商(有时仍称为IBVs或独立BIOS供应商),包括AMI、Insyde和Phoenix,广泛使用该参考代码。微软的强化EDK2分支Project Mu也使用了包含漏洞组件的代码。该漏洞被追踪为CVE-2026-97631,是一个ICMP组件中的内存损坏漏洞,攻击者可以利用它执行在操作系统和固件能实施像安全启动这样的防御之前运行的恶意代码,安全启动为所有代码建立信任链,包括在启动期间加载的可信任平台模块(TPM)。虽然通过CVE-2026-97631传递的最终负载没有持久性——这意味着它们仅运行一次——但它们可以为攻击者提供一个广阔的机会,安装在每次早期启动过程中也会运行的其他负载。猫已离开袋子 发现CVE-2026-97631的各方——Anthropic的亚历克斯·马特罗索夫和谷歌的丹·霍尔姆斯——本已安排在计划于一月的协调披露之前将其保密。作为主板和其他硬件制造商的AMI,上个月发布了这项拉取请求,详细说明了该漏洞并包含代码修复。一旦这一帖子引起了发现方的注意,TianoCore项目成员上周发布了公开报告。由于公开可用的补丁代码,高级黑客将很容易了解漏洞是如何被触发的,并构建有效的利用工具。更进一步,修补数百万由成千上万的硬件制造商和云服务提供商销售和使用的终端设备中的UEFI代码漏洞是复杂且耗时的。漏洞消息在另一起处理失误的披露后六天发布,这次涉及PHP编程语言中的关键代码执行漏洞。"EDK2网络栈中ICMP解析器的这个漏洞在影响信任链和更广泛的生态系统方面非常有趣,"Metasploit的创建者和安全公司Dragos的首席研究官HD Moore说。"有意破坏邻近终端或服务器的攻击者可以利用这个漏洞在启动过程中程序流仍然可以访问敏感组件(如终端的TPM)时劫持代码流。这可以被用来破解磁盘加密,尤其是在攻击者短期网络访问的情况下(在盗窃场景中更容易)。"CVE-2026-97631是PXE基础代码驱动程序(NetworkPkg/UefiPxeBcDxe)中的一个16年历史的缓冲区溢出,它负责允许服务器、存储设备和其他设备使用从本地网络下载的代码启动。在这个被称为启动前环境的启动过程中,驱动程序使用网络监听器监视ICMP错误。由于驱动程序没有强制施加504字节的内存复制限制,覆盖了相邻数据,恶意内部人员或获得本地网络低级别访问权限的黑客可以发送一个错误消息,将代码附加超出该限制。运行在CPU上的IUEFI模块随后会损坏。官方报告中写道:在网络启动期间,PXE基础代码驱动程序(NetworkPkg/UefiPxeBcDxe)保持对ICMP错误消息的接收请求,并将每个接收到的消息复制到其私有上下文结构的固定504字节字段Mode.IcmpError中。复制循环的范围处理在IPv4和IPv6处理程序(PxeBcIcmpErrorDpcHandle和PxeBcIcmp6ErrorDpcHandle)中都是错误的:对于长度超过504字节的消息,它仍然将字节复制到字段中,并且按累积而不是每个片段的长度推进目标指针,因此,超大的消息将攻击者控制的字节写入字段之外。在接收路径的早先阶段没有任何内容限制消息的长度。恶意错误可以通过从任何网络距离发送的简单单播传递到目标设备的IP地址,只要在PXE启动序列期间发送。攻击者可以通过导致启动序列挂起来传递拒绝服务。当攻击者知道目标固件版本时,它可以植入一个“假冒事件”,在其UEFI固件环境中在CPU上执行恶意代码。

阅读全文 →

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡