WebGPUの無限ループでMacがフリーズする「Deathray」、Appleはセキュリティ問題と認めず
The Deathray: A simple way for an untrusted site to freeze a Mac
信頼できないサイトのWebGPUシェーダーが無限ループでGPUを占有し、MacのWindowServerを停止させて再起動を強いる問題が発見された。Chrome、Firefox、Safariのいずれでも再現し、被害者はリンクをクリックするだけでよい。2026年7月にAppleへ報告されたが、同社は「セキュリティ上の影響はない」として修正を約束しなかった。
大多数の非セキュリティ関係者は、その評価に驚き、Appleがこの問題の修正を優先していないことに驚いている。
HNでの議論
140- isolay
> ブラウザが起動時に同じタブを自動で開き直さないことを願うだけだな
やられた。自分のブラウザはまさにそう設定してある。
- john_owl
運が良かった、そのウェブサイトは証明書エラーでダウンしていた。
- socalgal2
これはWebGLが出荷された2011年からある。仕様にも記載されている。自己修正型の問題だ。サイトに行くとマシンがフリーズし、二度とそのサイトを訪れない。
データが盗まれることも、プライバシーが失われることもない。起きるのは加害者が観客を失うことだけだ。
WebGLをオフにすると、FigmaもCanvaもGoogle Mapsも使えなくなる。自己修正型のサイトがいくつかあるのは許容範囲だろう。証拠に、これが可能になってから15年経つが世界は終わっておらず、インターネット全体がマシンをフリーズさせているわけでもない。
また、これは間違いなくMacOSのバグだ。WindowsとLinuxには、コマンドに時間がかかりすぎるとGPUをパワーサイクルするGPUモニターがある。WindowsはWebGLの出荷前から。Linuxは数年後。Macは未だに過剰なGPU使用から復帰しない。
- alwaysmrno
Windows上のBraveブラウザが約10秒間フリーズした。すべてのページが白くなった。
その後リフレッシュすると、問題のページ以外は再び動作した。
作者が推測したように、そのタブはフリーズしていた。
- washadjeffmad
90年代、ウェブが非商業的で楽しかった頃、私は「Don't Click Me」リンクを追加した。それは(「本当に本当に大丈夫ですか?」という一連のダイアログの後で)私が見つけられる限りの歴史的なブラウザバグを悪用する「ブラウザテスト」ページを読み込むものだった。無限ポップアップ、脱出不能なダイアログ、ActiveXの癖、さまざまなハングやクラッシュ、てんこ盛りだった。
コンピュータがクラッシュしなければ、最終的に「Internet Explorerを使わなかったおめでとう!」と表示する単一のポップアップが出た。あの恨みメールがまだ残っていればなあ。
- gucci-on-fleek
へえ、これはLinux上のFirefoxを完全にクラッシュさせた。今までそんなことはなかった。少なくともデスクトップ上の他のプログラムは完全に影響を受けていないようだ。
- StilesCrisis
MetalはC++14をベースにしている。つまりシェーダー内でDuff's Deviceを書ける。いろいろなMacで試したが、コンパイラでさまざまな致命的な障害を引き起こすものの、実際のカーネルパニックには至ったことがない。(KodeLifeで再現するのはかなり簡単だ)
- xoa
確かに用途はあるだろうし、特に誰かが純粋にウェブブラウザ内でゲームをしたり複雑な計算をしたりしたいならなおさらだが、私はブラウザベンダー、とりわけGoogleが「OS上のOS」になろうと躍起になっているように見える中で、彼らが急いで露出させようとしているハードウェア攻撃面の増大に対してかなり慎重/うんざりしているのは認める。この件で、私はしばらく前にFirefoxでdom.webgpu.enabledとpdfjs.enableWebGPUをfalseに設定していたことを思い出した。WebGLを無効にしたのと同じだ。超クールなものを見たらその時だけ有効にできると思っていたが、今のところそういうことはない。半ば関連して、久しぶりに利用可能な設定を見直していて気づいたのだが、dom.webgpu.blocked-domainsというのがあり、唯一のエントリが「easyeda.com,*.easyeda.com」になっている。これは何なんだろう?