操作系统还没启动就被接管?潜伏16年的UEFI固件漏洞为何提前引爆全球机房危机
服务器还没进操作系统,能不能被黑客直接拿下? 能。 而且在这个阶段,安全启动和加密芯片连发挥作用的机会都没有。 因为机器根本还没走到唤醒它们的那一步。
这就是刚刚在全球服务器领域捅出的一个大篓子。 2026 年 10 月 22 日,开源固件项目 TianoCore 紧急发布了一份安全公告。 公告里披露了一个漏洞编号为 CVE-2026-97631 的严重缺陷。 漏洞危险评分给到了 9.5 分,满分只有 10 分。 这个漏洞出在哪里? 它藏在 EDK II 里面。 EDK II 是整个计算机产业构建 UEFI 固件的开源基础代码。 不管你的服务器是戴尔、惠普、联想,还是各大云厂商机房里的定制机,主板底层的 BIOS 固件,基本上全都是基于这套开源项目长出来的。 而这行引发危机的代码,已经在代码库里静悄悄躺了整整 16 年。 它的源头,可以一直追溯到 2010 年 11 月的一次代码提交。
这行潜伏了 16 年的代码到底干了什么? 问题出在网络启动模块,也就是工程师常说的 PXE 启动。 在大型数据中心里,成千上万台服务器通常不会挂光驱或者插 U 盘去安装操作系统。 很多服务器开机时,第一件事是给网卡上电,通过局域网向中央服务器请求操作系统镜像。 在这个网络启动的过程中,固件里的网络驱动会持续监听来自网络的 ICMP 错误消息。 驱动代码为了接收这些错误数据包,在内存里专门划出了一块固定的缓冲区。 这块缓冲区的大小,刚好是 504 字节。 可以把它想象成一个固定容量的小抽屉。 正常情况下,网络传输的错误提示很小,放进抽屉里绰绰有余。 问题是,写代码的人在处理 IPv4 和 IPv6 数据包的逻辑时,漏掉了最基础的边界长度检查。 如果局域网里有人故意构造一个超过 504 字节的超长错误数据包,趁着服务器网络启动的几秒钟窗口发过去,会发生什么? 这台服务器的固件网络驱动照单全收,直接往那个 504 字节的小抽屉里硬塞。 装不下的多余数据,直接溢出边界,把抽屉旁边相邻的系统内存强行覆盖掉。 这就是经典的缓冲区溢出漏洞。
在操作系统加载之前发生缓冲区溢出,意味着什么? 这就是固件安全领域最棘手的地方。 当这行驱动代码执行的时候,整个计算环境还停留在 UEFI 的驱动执行环境阶段。 操作系统里的安全软件、杀毒工具、防火墙规则,甚至操作系统的内核代码本身,全都还没从硬盘里读出来。 处理器的执行权限,直接处于最顶级的 Ring 0 特权级别。 很多人平时倚仗的安全机制,比如验证启动文件签名的安全启动,或者负责测量信任链的 TPM 芯片,在这个瞬间根本防不住。 攻击者如果针对具体的固件编译版本精心构造溢出数据,就能在安全启动完成校验之前抢先接管处理器。 不仅能绕过安全启动的拦截,甚至能直接读取内存里的磁盘解密密钥,或者在主板固件里埋下无法通过重装系统清除的持久化后门。 一台机器在真正睁开眼睛看世界之前,灵魂就已经被换掉了。
这么严重的漏洞,是怎么被挖出来的? 发现它的是两位资深安全研究员:Anthropic 的 Alex Matrosov 和 Google 的 Dan Holmes-Mitra。 两位研究员非常有职业操守,他们在发现漏洞后走的是负责任的协同披露流程。 他们第一时间把细节报告给了上游维护团队,并且和各大硬件厂商约定了一个严格保密的修复周期。 按照原定计划,漏洞的公开披露时间定在 2027 年 1 月。 为什么要保密整整四个月? 因为修服务器固件,跟修手机应用完全是两码事。 手机应用或者浏览器出了漏洞,软件公司通宵改完代码,打包推送到应用商店,用户一点更新就能生效。 硬件固件的供应链是一条漫长又迟钝的传送带。 开源项目 EDK II 只是最源头的代码图纸。 图纸修好了,先要交给 AMI、Insyde 这些独立的商业固件供应商。 商业固件供应商合入补丁后,再把定制代码分发给戴尔、惠普、联想等成百上千家服务器制造商。 每家制造商手头都有几百种不同的服务器主板型号,每个型号的供电、芯片组和扩展插槽都不一样。 工程师必须为每一款主板单独拉分支、适配代码、做几周的兼容性和稳定性测试,再用私钥给固件镜像签名,最后挂到技术支持网站上。 到了这一步还没完。 数据中心的运维人员要给成千上万台物理服务器刷 BIOS,必须提前申请机房维护窗口,把业务迁移走,承受机器可能刷成砖头的风险,一台台断电重启。 整条产业链从上游改代码到下游全部部署完毕,四个月的时间都算紧凑的。
各家厂商正按部就班准备补丁的时候,意外发生了。 2026 年 9 月,独立固件巨头 AMI 的一名工程师在处理修复代码时,犯了一个极其低级的操作失误。 这名工程师没有走内部保密渠道,直接在 GitHub 的 EDK II 开源仓库里发起了一个公开的代码拉取请求。 在这个公开的请求描述里,不仅清清楚楚写着 CVE-2026-97631 这个漏洞编号,详尽描述了漏洞的成因,甚至连具体的修复代码都明明白白贴了上去。 保密契约瞬间化为乌有。 原本还要捂四个月的绝密漏洞,提前四个多月直接被晒在了全世界阳光底下。 黑客、研究员、安全团队,所有人打开网页就能看懂这个 16 年前的漏洞究竟在哪个文件的哪一行。 既然秘密已经彻底漏风,负责 EDK II 项目的 TianoCore 只能在 10 月 22 日提前引爆,紧急发布安全公告。
这就把全球的数据中心推到了一个极其尴尬的境地。 漏洞的成因和利用原理全世界都看明白了。 但下游硬件厂商的稳定版固件补丁,绝大多数都还没来得及做好。 成千上万台服务器就这么暴露在没有护甲的真空期里。 如果你手头有服务器正在运行,现在能做什么? 最直接也最有效的临时止血手段,就是进入服务器的 BIOS 设置,把 PXE 网络启动功能彻底关掉。 只要服务器是从本地硬盘或固态盘启动,根本用不上网络启动,直接把网卡的 PXE 驱动禁用掉。 这行 16 年前的网络驱动代码在开机时就不会被载入内存,攻击入口自然就消失了。 如果数据中心确实必须依赖网络启动来批量部署机器,就必须把负责启动的网络流量隔绝在专用的受控网络里,严防不受信任的设备接入。
一行在代码库里潜伏了 16 年的 504 字节缓冲区,加上一次工程师失手提交的公开代码,就这么把全球数据中心的底层防线掀开了一角。 越是接近硬件底层的代码,越像是被时间遗忘的基础设施。 平时大家都在盯着操作系统和上层应用的攻防,可一旦底层地基松动,上面修得再坚固的高楼,在开机的那一秒钟其实都无能为力。
同领域解读 / SOFTWARE & ENGINEERING
规范引用 / CANONICAL CITATION
操作系统还没启动就被接管?潜伏16年的UEFI固件漏洞为何提前引爆全球机房危机 — 墓碑科技 MUBEITECH(https://mubeitech.com/deep/mb-20261028-78e47e)
导出 / EXPORT
订阅 · SUBSCRIBE
每周一封独立、不受审查的科技与 AI 深度评论,周一发出。带出处,可核查。