前阵子 Ars Technica 报了一个 UEFI 固件里的洞,编号 CVE-2026-97631,评分 9.5。它藏的位置有点别扭:不在什么上层应用里,而在 UEFI 网络启动那段最底层的代码里——比操作系统、比 Secure Boot 的度量都要靠前。

具体在 EDK2 的 PXE Base Code 驱动,路径 NetworkPkg/UefiPxeBcDxe。这段代码处理 ICMP 错误报文的时候,把一个不限长度的东西往固定的 504 字节缓冲区里拷,长度没校验。代码往上游翻,能追到 2010 年前后——十六年,没人动过它。

触发条件听着也简单:目标机器正在走 PXE 网络启动的那几十秒里,同一个网段里任何人发一条单播的 ICMP 错误报文过去,就能把那个缓冲区写穿。写穿之后执行起来的代码,跑在操作系统加载之前,也跑在 Secure Boot 和 TPM 度量之前——用来保证启动链可信的那道门,自己先被破了。

不过得说清楚,这个洞的利用门槛比「9.5」看着的要高。要先进到同一个二层网络;而且地址是跟机型、固件版本绑死的,得一个目标一个目标去猜、去调,做不到一条 payload 打穿一片。所以它更像内网里的提权、持久化手段,而不是从公网直接打进来的入口。眼下的公开信息里,也还没有它被当成初始入侵点的证据。

麻烦的是修。到这会儿,修复只合进了 EDK2 上游的主分支(十月中旬那笔),没有稳定版可以跟。

项情况
受影响基于 EDK2 的 UEFI 固件;RHEL 8/9/10 的 edk2 标着受影响且没有勘误,Debian / SUSE 同样未修
当前修复只有 EDK2 上游主分支(10-15 合入),暂无稳定版;等主板/整机厂商的固件

指望 dnf / yum / apt 升一下就完事,这条路暂时不通——UEFI 这东西本来也不在发行版那条更新链上,它躺在主板和整机厂商的固件里。

能做的止血有几条:如果机群平时不靠 PXE 开机,就把网络启动关掉,这条最省事——不过动手前最好先问一句,多半有同事平时靠它批量装机、救急重装,别自己一个人拍板;盯着主板/整机厂商的 BIOS / UEFI 更新;Secure Boot 和 TPM 继续开着,但挡不住这个洞,别指望;启动日志里留意异常的启动项。比 BootHole 那类省心的一点是,修这个洞不需要吊销密钥。

自查暴露面(在 Linux 主机上):

efibootmgr -v | grep -i -E 'pxe|network'                     # 有没有挂网络启动项
dmidecode -s bios-version; dmidecode -s bios-release-date    # 固件版本和日期,拿去厂商页对

这两条只能告诉你暴露面开没开、固件老不老,判断不了有没有对应的补丁——补丁还没到能装的那一步。

同类的事这阵子不止一件:内核那个评 9.8 的 TCP 竞态,到现在也没补丁;再早点那个 7.8 分、进过 CISA 在野名单的合并网络包漏标记。固件这层的洞还要别扭一点:你连「什么时候能打上补丁」都不确定,剩下的只能是自己把机房的门看紧点。

参考:https://arstechnica.com/security/2026/10/code-execution-flaw-in-uefi-firmware-threatens-most-servers-on-planet-earth