WebGPUでMacを強制再起動させる脆弱性
原題: The Deathray: A simple way for an untrusted site to freeze a Mac
なぜ重要か
WebGPUはWebGL後継として全主要ブラウザが採用済みであり、攻撃面の拡大が業界全体のセキュリティ設計を問い直す。
セキュリティ研究者が2026年9月10日に公開した「Deathray」は、WebGPUの無限ループシェーダーを悪意あるWebページに仕込むだけで、MacのGPUを占有し、WindowServerを応答不能にしてカーネルパニックを引き起こす手法。Chrome・Firefox・SafariのmacOS版すべてで再現確認済みで、リンクをクリックするだけで被害を受ける。
研究者が公開した「Deathray」は、WebGPUのCompute Shaderに無限ビジーループを記述し、同じデータバッファをVertex Shaderと共有させることで機能する。Compute Shaderが永遠にループするため、Vertex Shaderは処理を進められず、GPU待ちが積み重なる。その影響がmacOSの描画プロセスであるWindowServerに波及し、デスクトップUIが完全に停止する。
WindowServerが一定時間応答しないと、OSのWatchdog機能がカーネルパニックを発動し、Macは強制再起動される。SSH接続は引き続き可能なため、CPU処理自体は生きているが、画面操作は不能となる。マウスが動かない、ビーチボールが回り続ける、画面の一部がマゼンタに化けるなど、挙動は毎回一定ではないという。
この問題はmacOS Tahoe搭載のMシリーズMacBookで確認されており、Windows・Linux・その他のOSではタブのフリーズにとどまり、タブを閉じれば復帰できる。つまりmacOS固有の問題だ。
前例として、2023年にImpervaのRon Masasが同様のWebGLベースの「ShadyShader」を公開している。AppleはCVE-2023-40441(CVSSスコア6.5・中程度)として対処し、入力バリデーションを強化した。しかし研究者は「無限ループの検出は停止問題と等価であり、根本的な解決にはなりえない」と指摘。WebGPU向けバリデーションは今回の自明な無限ループすら検出できておらず、未信頼コードを実行するシェーダーの先制的な強制終了が必要だと主張している。他のOSはすでにこれを正しく実装していると述べた。