点击链接即可让Mac死机的WebGPU漏洞

The Deathray: A simple way for an untrusted site to freeze a Mac

我意外发现了一个名为Deathray的WebGPU漏洞,只需点击一个链接,就能让Mac的图形界面完全卡死,直到强制重启。这个漏洞在Chrome、Firefox和Safari上都能复现,但仅限于MacOS系统。它利用无限循环的Compute Shader阻塞GPU,进而拖垮WindowServer进程。虽然Apple此前曾修复过类似的ShadyShader漏洞,但这次他们却认为这不属于安全问题。这让我意识到,用户对浏览器的信任正被这种看似无害的点击所破坏。

大多数人对浏览器有着相当强的信任,认为仅仅点击一个链接不会在关闭标签页之外对电脑造成负面影响。
  1. gucci-on-fleek

    哈,这直接让我的 Linux 版 Firefox 崩溃了,以前从未发生过。至少我桌面上其他程序似乎完全没受影响。

  2. washadjeffmad

    回到 90 年代,那时网络还没商业化,还挺有趣。我加过一个“别点我”的链接,加载一个“浏览器测试”页面(在弹出一连串“你确定确定确定吗?”的对话框之后),利用了我能找到的所有历史浏览器漏洞。无限弹窗、无法关闭的对话框、ActiveX 的怪癖、各种卡死和崩溃,无所不包。

    如果没让你的电脑崩溃,它最终会弹出一个对话框说:“恭喜你没用 Internet Explorer!”我真希望还能收到那些充满恨意的邮件。

  3. davsti4

    我猜你直接把它关掉就行了?

    在 Linux 版的 Chrome 上:

    WebGPU 在此平台上处于实验阶段。参见 https://github.com/gpuweb/gpuweb/wiki/Implementation-Status#... deathray/:9

    Failed to create WebGPU Context Provider main @ deathray/:9

    (anonymous) @ deathray/:113

    Uncaught (in promise) TypeError: Failed to execute 'configure' on 'GPUCanvasContext': Failed to read the 'device' property from 'GPUCanvasConfiguration': Required member is undefined. at main (deathray/:17:17)

  4. mitxela

    你需要那个假的 for 循环和顶点着色器是有什么原因吗?单个无限循环的着色器不能达到同样的效果吗?

    在 WebGL 里会发生什么?

  5. monster_truck

    还记得那个 Unicode 字符串把 iOS 7 搞崩溃的时候吗?你可以把它设成 SSID,让设备卡死在循环里。好日子啊。

同日更多故事

2026-09-10