点一下链接,你的Mac能在几秒内死机重启——不用中病毒,不用下载任何东西,一段几十行的WebGPU代码就够了。安全研究者Auberon López把这个漏洞叫做deathray(死亡射线),在macOS上不管用Chrome、Firefox还是Safari都能复现。更值得琢磨的是,苹果先答应修,后来又改口说这不算安全问题。

发生了什么

原理不复杂。一个WebGPU的compute shader写了个死循环,反复往同一块缓冲区写数据;另一个vertex shader要读这块缓冲区,读不到就卡住。GPU任务排队拥堵,顺着系统一路溢出到管理桌面显示的WindowServer。WindowServer失去响应超过一定时间,系统看门狗等不到回应,直接触发内核panic,强制重启。

复现范围:macOS上三大主流浏览器全部中招。作者只在跑Tahoe系统的M系列MacBook上测过,其他Mac机型是否受影响还不确定。

时间线:7月27日报给苹果安全团队,苹果很快复现并表示会修,给了一份保密的修复时间表;8月26日改口,说"没看到安全影响",报告不会带来产品变化,转给别的团队做"潜在优化评估"。

死亡射线是怎么冻住Mac的 ① 死循环 写同一缓冲区 ② GPU拥堵 顶点着色器卡住 ③ WindowServer失联 桌面失去响应 ④ 强制重启 看门狗触发panic

为什么重要

这不是苹果第一次栽在这类问题上。2023年,研究者用WebGL写出的ShadyShader同样靠一个跑不完的巨大循环拖垮GPU,苹果为此发了CVE-2023-40441,定为中危6.5分,修法是给runaway loop加输入检测。deathray的循环比ShadyShader更容易识别——就是个最简单的死循环——却依然能在更新的WebGPU上跑通,说明苹果对这套新API的输入校验反而更松。

架构层面还有个更深的坑:M系列芯片的GPU抢占逻辑不在操作系统内核里,而是放在协处理器ASC的固件里,内核管不到GPU具体在干什么。作者怀疑,这也是苹果修起来比别的系统吃力的原因之一。

对照很清楚:作者测试的其他操作系统上,同样的shader只让标签页卡顿,关掉标签页就恢复正常,不会拖累整台电脑。这说明问题不在WebGPU标准本身,是苹果这套实现单独没兜住。

同样的代码,两种下场 macOS 三大浏览器全部复现 桌面卡死、花屏 触发内核panic 强制重启电脑 其他系统 仅标签页卡顿 关闭标签页即恢复 系统其余部分不受影响

谁会踩坑,接下来看什么

受影响的是所有在Mac上用主流浏览器上网的人,和用哪个浏览器无关——这是WebGPU这层API的问题,不是某个浏览器写歪了。

苹果的技术定义没错:崩溃、卡死、可恢复的数据丢失,按传统标准确实不算"安全漏洞",作者接触的多数安全研究者也认可这个说法。

点一个链接顶多变卡,不该把整台电脑带崩到重启。

但普通用户的直觉不是这么算的。deathray踩的不是安全定义的红线,是用户对浏览器沙盒那条隐形信任线。

  • 风险.如果苹果真按"低优先级"处理,这类代码随手就能做成恶意链接里的整人工具,门槛低到只需要一次点击。

接下来该盯着看的,是苹果会不会真的动手修,会不会挑最省事的办法——直接把WebGPU默认关掉。作者自己在文中明确表态不希望看到这种因噎废食的修法,毕竟WebGPU本该是取代WebGL的新一代标准,不是被一次死循环拖累就关掉的功能。