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