点击链接即可让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漏洞,但这次他们却认为这不属于安全问题。这让我意识到,用户对浏览器的信任正被这种看似无害的点击所破坏。
大多数人对浏览器有着相当强的信任,认为仅仅点击一个链接不会在关闭标签页之外对电脑造成负面影响。
HN 评论区
72- gucci-on-fleek
哈,这直接让我的 Linux 版 Firefox 崩溃了,以前从未发生过。至少我桌面上其他程序似乎完全没受影响。
- washadjeffmad
回到 90 年代,那时网络还没商业化,还挺有趣。我加过一个“别点我”的链接,加载一个“浏览器测试”页面(在弹出一连串“你确定确定确定吗?”的对话框之后),利用了我能找到的所有历史浏览器漏洞。无限弹窗、无法关闭的对话框、ActiveX 的怪癖、各种卡死和崩溃,无所不包。
如果没让你的电脑崩溃,它最终会弹出一个对话框说:“恭喜你没用 Internet Explorer!”我真希望还能收到那些充满恨意的邮件。
- 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)
- mitxela
你需要那个假的 for 循环和顶点着色器是有什么原因吗?单个无限循环的着色器不能达到同样的效果吗?
在 WebGL 里会发生什么?
- monster_truck
还记得那个 Unicode 字符串把 iOS 7 搞崩溃的时候吗?你可以把它设成 SSID,让设备卡死在循环里。好日子啊。