Chrome で発見された脆弱性とエクスプロイト・チェーンの開発:背景となった AI の活用

Google Pays $250,000 for AI-Assisted Chrome Exploit Enabling Windows Code Execution

2026/10/14 gbhackers — Google が公表したのは、AI を活用して Windows 版 Chrome のレンダラー・サンドボックスの外部でのコード実行を可能にする脆弱性とエクスプロイト・チェーンの情報と、それを開発した XBOW への 25 万ドルの報奨金の授与である。2026年4月に導入された Google の脆弱性報奨金プログラムにおいて、Chrome を対象とするエクスプロイト・チェーン全体に対して支払われた初の報奨金となる。XBOW によると、今回の攻撃チェーンに使用された 3 件の脆弱性は、すでに修正されている。

AI 支援による Chrome のエクスプロイト開発

研究者たちは、以前の調査や不採用となった報告を経て、8月2日〜8月7日までの 6日間で、今回報奨金の対象となるエクスプロイトを開発した。

XBOW は、この 6日間の開発期間に発生した API 利用料金を、約 4万ドルと見積もっている。この研究には、Brendan Dolan-Gavitt/Andres Luksenberg/Baul Lee/Willem Pinckaers が参加した。

研究者たちは AI エージェントと協力し、人間の専門知識と、自動化された脆弱性の発見およびエクスプロイト開発を組み合わせた。

XBOW は、OpenAI の一般公開されている GPT-5.6 Sol モデルと、その前の世代のモデルを活用した。これらのモデルは、ソースコードの調査/仮説の検証/概念実証 (PoC) の作成/エクスプロイトの各段階の開発に使用された。その一方で、人間の研究者が担当したのは、攻撃対象の選定/発見内容の検証/調査方針の変更/各コンポーネントの統合である。

実証実験では、正式に署名された Chrome Beta を使用し、Web ページから Windows の電卓アプリを起動することに成功した。これにより、Chrome のレンダラーを隔離するサンドボックスの境界を越えて、コードを実行できることが実証された。

第 1 段階:V8 の Maglev に存在する脆弱性

最初の脆弱性は、JavaScript エンジン V8 に搭載されている、中間層の最適化コンパイラ「Maglev」に存在していた。

この問題は、最適化時の前提条件が成立しなくなった時に JavaScript オブジェクトを再構築する、最適化解除 (Deoptimization) の処理中に発生する。

Maglev は、変更可能な HeapNumber オブジェクトを、変更不可能なオブジェクトであるかのように誤って再利用していた。この不具合により、本来は独立している複数のオブジェクトが、同じボックス化された数値を共有する状態となった。

結果として、コンパイラが前提とする境界チェックの推論を崩すような変更が可能になった。研究者たちは、この不整合を悪用することで、V8 の 4 GB のポインタ圧縮領域 (Pointer Compression Cage) 全体に対する読み取り/書き込みアクセスを獲得した。

第 2 段階:WebP デコード処理の悪用とネイティブ・メモリへの書き込み

次の段階では、WebCodecs の ImageDecoder を介したアニメーション WebP のデコード処理が標的となった。

V8 のポインタ圧縮領域内のメモリを侵害した後に、Blink が排他的に所有していると認識していた画像データに対する書き込みアクセスを、攻撃者は維持できるようになる。

研究者たちは、画像フレームのサイズ情報がキャッシュされた後に、その画像データを書き換えた。これにより、チェック時と使用時の不整合 (Time-of-Check to Time-of-Use:TOCTOU) が発生した。

その結果、デコーダーは一方の画像のサイズ情報と、別の画像のペイロードを組み合わせて処理する状態となった。この処理により、ネイティブのビットマップ用に確保されたメモリ領域でバッファ・オーバーフローが発生し、そのネイティブ・メモリ内の狙った位置へのデータの書き込みが成立する。

最終的に、この書き込みを悪用して既存の命令列を経由するよう WebAssembly の実行経路を変更し、レンダラー内部でネイティブ・コードを実行できる状態になった。

第 3 段階:Crashpad の脆弱性を悪用してサンドボックスを突破

最後の脆弱性は、Chrome のクラッシュ・レポート処理を担当する「Crashpad」に存在していた。Crashpad とは、Chrome のレンダラー・サンドボックスの外側で動作するコンポーネントである。

Crashpad がレンダラー・プロセスを一時停止したと想定している間に、Windows のスレッドがプロセスの凍結処理を回避し、メモリ保護属性を変更できる問題が発見された。

その結果、メモリの読み取りに失敗した際に、当初要求されたサイズを超える再試行が発生した。この過大な読み取り処理により、書き込み先のバッファがオーバーフローし、隣接する Crashpad オブジェクトが破損する。研究者たちは、このメモリ破損を悪用し、Crashpad の正規のハンドラー機能の実行先を変更した。

それにより、検証対象の制御フロー保護やシャドウ・スタック保護を維持した状態で、Windows の電卓アプリを起動することに成功した。これにより、Web ページの内容を制御するだけではなく、レンダラー・サンドボックスの外側で Windows のネイティブ・コード実行を引き起こせる状況が成立した。

Chrome の更新と再起動を推奨

今回の 3件の脆弱性に対しては、以下の修正が実施されている。

  • Maglev: 変更可能な HeapNumber オブジェクトが、不適切に再利用されないように修正。
  • WebP デコード処理: 出力バッファが、実際のビットマップ領域の境界内に収まるように修正。
  • Crashpad: 読み取りの再試行で扱うデータ長が、最初に要求された長さを超えないように制限。

また、XBOW が採用したモジュール型の設計により、研究者たちはエクスプロイト・チェーン全体を作り直すことなく、重複していた脆弱性を別の脆弱性に置き換えることができた。

Chrome の利用者に推奨されるのは、Chrome をアップデートして再起動することで、修正を適用することだ。

今回の研究が示すのは、エクスプロイト開発が、AI により加速し得る事例である。ただし、6 日間で攻撃チェーンの構築に成功した背景には、それ以前に積み重ねられた相当量の研究成果が存在している。

さらに、専門家による継続的な監督と、XBOW の研究者が開発した再利用可能な技術も重要な役割を果たしていた。そのため、今回の成果は AI のみによる自律的なエクスプロイト開発ではなく、人間の専門知識と AI エージェントを組み合わせた脆弱性研究の成果として捉える必要がある。