Claude Opus 4.6 と CVE-2026-2796 のエクスプロイト

Claude Opus 4.6 は、Firefox の JavaScript WebAssembly コンポーネントにおける JIT ミスコンパイル脆弱性である CVE-2026-2796 に対する機能的なエクスプロイトを自律的に作成する能力を示した。エクスプロイトはセキュリティ機能を削減したテスト環境を必要としたが、ブラウザサンドボックスからの「フルチェーン」の脱出とはならなかった。しかし、これはLLMのサイバー能力の進化において重要な節目を示している。

CVE-2026-2796 の技術的根拠

CVE-2026-2796 は、JavaScript と WebAssembly (Wasm) の間のインポート/エクスポート境界で発生する型の混乱(type confusion)脆弱性である。

型の安全境界

通常、Firefox は以下の2つのメカニズムによって型の安全性を確保している:

  1. インスタンス化時のチェック:Wasm 関数は宣言された型シグネチャと一致しなければならない。
  2. 実行時変換:JavaScript でバックアップされたインポートは、インタープロセス層を経由して Wasm 値から JS 値に変換され、生のビットが再解釈されるのを防ぐ。

最適化の失敗

この脆弱性は MaybeOptimizeFunctionCallBind() 内の「高速パス」最適化に存在する。Wasm モジュールが Function.prototype.call.bind(...) でラップされた関数をインポートする場合、エンジンはラッパーをアンラップし、インポートレコードに内部のターゲット関数を直接格納するが、アンラップされた関数の型シグネチャがインポートで宣言された型と一致するかを検証しない。

標準的な呼び出しパス(Instance::callImport)は、JS インタープロセス層のおかげで安全であるが、getExportedFunction() パスはこのチェックを行わない。Wasm コードが ref.func を使ってインポートされた関数を参照すると、アンラップされたターゲット関数が返される。この関数が call_ref で呼び出されると、実行は完全に JS インタープロセス層をバイパスし、パラメータが生のバイトとして渡される。その結果、モジュール A が宣言された型に基づいてバイトを書き込み、モジュール B が自身の異なる型に基づいて読み取るという型の混乱が発生する。

Claude のエクスプロイト開発プロセス

Anthropic は、仮想マシン、タスク検証器、および脆弱性の詳細を Claude Opus 4.6 に提供した。成功するためには、Claude はセキュリティが削減された Firefox の js shell の簡略版を使って、秘密ファイルを読み取り、ターゲットシステムにエクスフィルレーションファイルを書き込む必要があった。

エクスプロイトプリミティブの連鎖

Claude は、目的を古典的なブラウザエクスプロイトチェーンに分解した:

  1. 型の混乱:脆弱性を利用して制御されたポインタの参照を生成する。
  2. 情報漏洩(addrof:オブジェクトのアドレスを整数として漏洩する。
  3. 参照偽造(fakeobj:任意のアドレスに JS オブジェクト参照を偽造する。
  4. 任意の読み書きaddroffakeobj を使って、制御されたバックストアポインタを持つ偽の ArrayBuffer を作成する。
  5. コード実行:関数ポインタを上書きして、任意のコード実行を達成する。

読み書きプリミティブの実装

Claude は、WebAssembly GC プロポーザルの struct 型を利用して、「任意の書き込みを達成するためにはまず任意の書き込みが必要」という「ニワトリとタマゴ」の問題を回避した。

externref を構造体参照にキャストし、struct.get(固定オフセットでのメモリロード)を使用することで、読み取りプリミティブを構築した。同様に、struct.set を使って write64 プリミティブを作成した。これらのプリミティブにより、Claude はプロセスのアドレス空間を操作し、最終的に完全な任意の読み書きに必要な偽の ArrayBuffer を構築できた。

AI サイバー能力への影響

この事例は、先端モデルが複雑なエクスプロイトを生成する能力に近づいていることを示している。

モデル比較

評価において、Opus 4.6 だけが成功した。他のテストされたモデル——Opus 4.1、4.5、Sonnet 4.5、4.6、Haiku 4.5——はエクスプロイトを生成できなかった。Anthropic はこの成功を、Opus 4.6 の高い粘り強さと優れたプログラミング能力に起因すると説明している。

リスク評価

Anthropic は、この結果が Opus 4.6 の「能力の下限」を示していると指摘している。高度なヒープ操作なしに型の混乱をエクスプロイトプリミティブに変換できる能力は、意図的な攻撃者がLLMを使用することで、エクスプロイト開発のスピードを著しく加速できる可能性を示唆している。

"これは迅速に行動すべき瞬間である——サイバーセキュリティ対策担当者が可能な限り多くのコードを保護することで、サイバー犯罪者がLLMのサイバー能力を悪用するためのスキルレベルを引き上げる必要がある。"

Anthropic は、開発者が脆弱性を検索し、バグレポートを優先順位付けし、パッチを提案するのを支援することで、サイバーセキュリティへの取り組みを拡大する予定である。

Sources

関連