Googleは、XBOWの研究チームに25万ドルの報奨金を支払いました。研究チームは、Chromeの3件の脆弱性を組み合わせ、AIの支援を受けてエクスプロイトチェーンを構築しました。このチェーンを使うと、WindowsでブラウザーのレンダラーサンドボックスをIして外側でコードを実行できます。
XBOWによると、チームはこのチェーンの開発に6日間を費やし、モデルのAPI利用料として約4万ドルがかかりました。脆弱性はすでに修正されています。
同社は、影響を受けた可能性のあるユーザーは世界で10億人に上ると推定しています。ただし、この数字は被害が確認された件数ではありません。
公開されたデモでは、署名付きのChrome Beta上で、Webページから Windows の電卓を起動しました。悪用の実被害を記録したものではなく、ブラウザーの封じ込め境界を越えて実行が可能になることを示した実証です。
チェーンの起点は、V8の最適化コンパイラーであるMaglevでした。脱最適化(deoptimization)の際に、エンジンが可変のHeapNumberを、再構築した複数のJavaScriptオブジェクト間で誤って再利用していました。
この挙動は不変性の前提に反します。その結果、最適化された配列アクセスが本来の境界チェックを回避できるようになり、最終的にはV8の4GBポインター圧縮ケージ全体へのメモリアクセスが可能になりました。
2つ目の脆弱性は、WebCodecsを通じたアニメーションWebPのデコード処理に関するものです。研究チームはV8内でメモリを制御できるようになった後も、BlinkがImageDecoderに排他的に渡したと考えていた画像バイトへのアクセスを保持していました。
このバイトを書き換えると、デコーダーはキャッシュ済みのフレーム形状情報と、異なる画像内容を組み合わせて処理します。このTOCTOU(time-of-check/time-of-use)の不整合により、V8のケージ外でネイティブヒープのオーバーフローが発生しました。
研究チームはこのメモリ破壊を、任意に選んだネイティブメモリへの書き込みに発展させました。さらにWebAssemblyへの受け渡しを利用して、レンダラープロセス内で次のペイロードを実行しています。ただし、V8を突破しただけでは、ChromeのOSレベルのサンドボックスは破れません。
最終段階では、サンドボックス外で動作するChromeのクラッシュハンドラー「Crashpad」を悪用しました。Crashpadのメモリ読み取り処理は、停止中のレンダラーがメモリ保護設定を変更することはないと想定していました。
ところが、プロセスの凍結を回避するよう設定されたWindowsスレッドは動き続けていました。このスレッドが、読み取りの失敗から再試行までの間にページのアクセス権を変更しました。
その結果、Crashpadは当初要求されたよりも多くのバイトをコピーし、ヒープバッファーがオーバーフローしました。エクスプロイトは既存のハンドラー機能を転用して電卓を起動しています。検証対象のシステムに備わるコントロールフローとシャドウスタックの保護にも対応した手法です。
修正では、再試行時の読み取りを当初要求されたサイズに制限し、防御的な検証を追加しました。Brendan Dolan-Gavitt氏、Andres Luksenberg氏、Baul Lee氏、Willem Pinckaers氏は、OpenAIのGPT-5.6 Solとその前世代モデルを使って作業しました。
AIエージェントは、ソースコードの調査、仮説の検証、概念実証(PoC)の作成、エクスプロイト部品の開発を担当しました。一方、研究者は攻撃対象の選定、発見事項の検証、各部品の統合の指揮を担っています。
報奨の対象となった作業は、先行する調査を踏まえ、8月2日から8月7日にかけて行われました。モジュール式の設計は重要な役割を果たしました。サンドボックス脱出の部品が既存の報告と重複した際、チームはチェーン全体を作り直さず、WebPの脆弱性に置き換えて対処しています。
今回の成果は、専門知識なしにAIが自律的に脆弱性を発見したことを示すものではなく、脆弱性研究が加速している実態を示すものです。XBOWも明確に注意を促しているように、6日間と4万ドルをかければ誰でも同様の成果が得られるとは限りません。
XBOWの技術的な開示資料では、3つの段階すべてについて修正が示されています。管理下のWindows環境でも個人のデバイスでも、パッチ適用済みのブラウザービルドを速やかに展開することが重要です。
16,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。チームで試す
翻訳元: https://cyberpress.org/google-pays-250000-for-ai-assisted-chrome-exploit/