点一下链接,你的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日改口,说"没看到安全影响",报告不会带来产品变化,转给别的团队做"潜在优化评估"。
为什么重要
这不是苹果第一次栽在这类问题上。2023年,研究者用WebGL写出的ShadyShader同样靠一个跑不完的巨大循环拖垮GPU,苹果为此发了CVE-2023-40441,定为中危6.5分,修法是给runaway loop加输入检测。deathray的循环比ShadyShader更容易识别——就是个最简单的死循环——却依然能在更新的WebGPU上跑通,说明苹果对这套新API的输入校验反而更松。
架构层面还有个更深的坑:M系列芯片的GPU抢占逻辑不在操作系统内核里,而是放在协处理器ASC的固件里,内核管不到GPU具体在干什么。作者怀疑,这也是苹果修起来比别的系统吃力的原因之一。
对照很清楚:作者测试的其他操作系统上,同样的shader只让标签页卡顿,关掉标签页就恢复正常,不会拖累整台电脑。这说明问题不在WebGPU标准本身,是苹果这套实现单独没兜住。
谁会踩坑,接下来看什么
受影响的是所有在Mac上用主流浏览器上网的人,和用哪个浏览器无关——这是WebGPU这层API的问题,不是某个浏览器写歪了。
苹果的技术定义没错:崩溃、卡死、可恢复的数据丢失,按传统标准确实不算"安全漏洞",作者接触的多数安全研究者也认可这个说法。
点一个链接顶多变卡,不该把整台电脑带崩到重启。
但普通用户的直觉不是这么算的。deathray踩的不是安全定义的红线,是用户对浏览器沙盒那条隐形信任线。
- 风险.如果苹果真按"低优先级"处理,这类代码随手就能做成恶意链接里的整人工具,门槛低到只需要一次点击。
接下来该盯着看的,是苹果会不会真的动手修,会不会挑最省事的办法——直接把WebGPU默认关掉。作者自己在文中明确表态不希望看到这种因噎废食的修法,毕竟WebGPU本该是取代WebGL的新一代标准,不是被一次死循环拖累就关掉的功能。
