Macをフリーズさせる凶悪なWebページ「The Deathray」

「The Deathray」とは?

WebページにアクセスするだけでMacの画面操作を完全に不能にする「The Deathray」と呼ばれる検証コードおよび仕組みを公開し、注目を集めています。

「The Deathray」は、Webブラウザ経由でグラフィック処理を行う次世代標準規格であるWebGPUを悪用したコードです。

Webサイト上でGPUに非常に重い無限ループを行わせるシェーダーを実行することで、GPUリソースを完全に占有します。

その結果、ブラウザ内だけでなくmacOSの画面描画全般を担当するプロセスの「WindowServer」までもが停止し、システム全体の操作が完全にフリーズします。

https://auberon.xyz/blog/posts/deathray

Appleの対応と問題視される背景

開発者のロペス氏はこの問題をAppleへ報告しましたが、Apple側は「強制再起動や画面のフリーズ、回復可能なデータの喪失はセキュリティ上の脆弱性とはみなさない」として、修正の対象外とする旨を回答したとされています。

過去にもWebGLを使った同様の手法(「ShadyShader」と呼ばれる脆弱性:CVE-2023-40441)が存在しており、その際は「CVSS 6.5(中程度)」としてAppleにより修正されていました。

しかし、今回のWebGPUに関するループ検出や制御処理については、現時点で十分な対策が施されていないのが現状です。

対策と注意点

WebGLを悪用してフリーズすると、未保存の作業データが消失するなどのリスクがあります。

怪しいリンクや不要なWebサイトを開かないよう注意するとともに、WebGPU機能をブラウザ設定で一時的に無効化するなどの自衛策が求められます。

ChromeでWebGLを無効にする方法

設定のシステムにある「グラフィック アクセラレーションが使用可能な場合は使用する」をオフにする。

ChromeでWebGLは設定のシステムから無効にする

SafariでWebGLを無効にする方法

設定の機能フラグで「WebGPU」を入力後、WebGPUをオフにする。

Safariは設定の機能フラグで「WebGPU」を入力後、WebGPUをオフにする。

EdgeでWebGLを無効にする方法

アドレスバーに「edge://flags」を入力後、WebGLを「無効」にする。

Microsoft Edgeはアドレスバーに「edge://flags」を入力後、WebGLを「無効」にする。