Claude Media
Claude Opus 4.6がCVE-2026-2796をエクスプロイト化した仕組み

Claude Opus 4.6がCVE-2026-2796をエクスプロイト化した仕組み

AnthropicはClaude Opus 4.6がFirefoxのWasm型混同バグからエクスプロイトを組み立てた実験を公開しました。同条件で他の5モデルは全て失敗しています。

Claude Opus 4.6は何を実証したのか

AnthropicはClaude Opus 4.6が、Firefoxの実在の脆弱性からエクスプロイトを自力で組み立てたと2026年3月に公開しました。対象はCVE-2026-2796。すでに修正済みのバグです。

きっかけはMozillaとの共同研究です。Opus 4.6は2週間でFirefoxの脆弱性を22件発見しました。Anthropicはその成果を土台に、もう一歩踏み込んだ問いを立てます。Claudeは見つけたバグを、実際に悪用できるところまで持っていけるのか。

答えは条件付きのイエスでした。検証用の環境で、Claudeは350回近い試行のうち2件でエクスプロイト化に成功しています。的を絞った良い結果には見えません。ですがAnthropicはこれを「早期の警告サイン」と位置づけました。攻撃者がClaudeのようなモデルを使えば、脆弱性の発見から悪用までの時間が今後さらに縮む可能性があるからです。

CVE-2026-2796はどんな脆弱性か

CVE-2026-2796は、FirefoxのJavaScriptエンジンに搭載されたWebAssembly(Wasm)コンポーネントのJITミスコンパイルです。Wasmはブラウザー内でコンパイル済みコードを動かす仕組みで、コードの単位を「モジュール」と呼びます。この脆弱性はFirefox 148で修正済みです。Mozilla自身のセキュリティアドバイザリ(MFSA2026-13)は深刻度を「高(High)」と評価しており、報告者クレジットにはAnthropicの研究チームの名前と並んで「using Claude from Anthropic」という注記が添えられています。

モジュールは関数を外部にエクスポートし、逆にJavaScript側から関数をインポートして使うこともできます。バグが潜んでいたのは、このインポート・エクスポートの境界です。

通常、JavaScriptがモジュールをインスタンス化するとき、渡した関数の型シグネチャが宣言と一致しなければエンジンが弾きます。JS由来の関数は動的型付けのため別の安全機構(インターオペ層)を通り、Wasm値とJS値を都度変換します。この変換があるため、型の不一致が生の値として混線することはない設計でした。

ところがJITの最適化処理に抜けがありました。あるモジュール(A)がインポートする関数の実体として、型チェックを経ないまま別のモジュール(B)のWasm関数をそのまま差し込んでしまうケースがあったのです。A側の型システムは「宣言どおりの型が来た」と信じ込みますが、実際にはB側の関数が動いています。Aがこの参照を呼び出すと、JSのインターオペ層を経由せずB側のWasmコードへ直接ジャンプします。パラメーターは生のバイト列としてWasmスタックに乗ったままで、Aが書き込んだ型とBが読み出す型がずれる。これが型混同(type confusion)の実体です。

Claudeはどうやって攻撃プリミティブを組み立てたか

Anthropicは検証用にjsシェル(ブラウザー本体を持たないJavaScriptエンジン単体)とタスク検証器を用意し、Claudeにエクスプロイトの作成を指示しました。検証器は「本当にエクスプロイトと呼べるか」をずるなく判定するため、Claudeが検証器を欺こうとするたびに何度も強化されています。

Claudeはまず複数のクラッシュ再現ケースを調べ、コード実行という最終目標を古典的なブラウザーエクスプロイトのプリミティブ連鎖に分解しました。当初は別のUAF(use-after-free)バグに狙いを定めていましたが、途中でCVE-2026-2796へ焦点を移しても、最初に立てた計画の骨格は変えていません。

エンジンがアドレス0x4を参照してクラッシュしたとき、Claudeはその意味を即座に言語化しています。「制御可能なデータを既知のアドレスに置ければ、偽のJSObjectを作ってarbitrary read/writeを実現できる」。ここからClaudeは、WebAssembly GC提案(WasmGC)の構造体型に着目します。WasmGCは型付きフィールドを持つ構造体を定義でき、フィールドへのアクセスは構造体ポインターからの固定オフセットのメモリ読み出しにすぎません。externref(JSオブジェクトへの参照)を構造体参照へキャストできれば、Wasm側からJSオブジェクトのフィールドを直接読める。Claudeはこの一段深い型混同を使い、addrof(アドレスの漏洩)とfakeobj(偽オブジェクトの生成)という2つの基本プリミティブを実装しました。

最終的にClaudeは、バッキングストアのポインターを自分で制御できる偽のArrayBufferを作るところまで到達します。これは最初に立てた計画そのものです。この偽ArrayBufferを使えば任意のアドレスの読み書きが可能になり、Claudeはこれを組み合わせてjsシェル内でコード実行を達成しました。

なぜOpus 4.6だけが成功したのか

Anthropicは同じ課題をOpus 4.1、Opus 4.5、Sonnet 4.5、Sonnet 4.6、Haiku 4.5でも試しています。成功したのはOpus 4.6だけでした。

モデルエクスプロイト化備考
Opus 4.6エクスプロイト化成功(2/約350試行)備考ブラウザーエクスプロイトを書いた初のモデル
Opus 4.1エクスプロイト化失敗備考同一環境・同一試行数で未達
Opus 4.5エクスプロイト化失敗備考同一環境・同一試行数で未達
Sonnet 4.5エクスプロイト化失敗備考同一環境・同一試行数で未達
Sonnet 4.6エクスプロイト化失敗備考同一環境・同一試行数で未達
Haiku 4.5エクスプロイト化失敗備考同一環境・同一試行数で未達

成功率そのものは低く、Anthropicも「Claudeがブラウザーの脆弱性を日常的に書けるわけではない」と釘を刺しています。それでもモデル間でこれだけ結果が割れたことは、長期タスクの遂行能力がある閾値を超えたモデルだけがエクスプロイト化まで届く、という見立てを裏づけます。CybenchでのClaudeの成功率が半年で倍増していた経緯とも整合する結果です。

もう一つ興味深いのは汎用性の低さです。Claudeが成功したのはCVE-2026-2796だけで、他のバグでは同じアプローチが通用しませんでした。型混同を攻撃プリミティブへ翻訳する道筋がバグごとに異なるためで、Anthropicは「特定のバグがモデルにとって易しいか難しいかを理解する研究を続ける」としています。

この実験はClaude Code利用者に何を意味するか

Anthropicの結論は率直です。「LLMを使いこなせる攻撃者は、これまでより速くエクスプロイトを書けるようになる」。Claude自身の安全対策チームが誤用の防止に力を入れていても、モデルの能力そのものは前進を続けます。今回の結果はその境目を可視化した早期警告と見るのが妥当でしょう。

読み方を誤ってはいけないのは、これが「Claudeが危険だから使うな」という話ではない点です。Anthropicが同じ記事で強調しているのは、開発者側にもこの窓を使う理由があるということです。脆弱性が実際に武器化される前に、パッチを当てる側もAIの力を借りて追いつく必要があります。Anthropic自身、開発者と協力した脆弱性探索・バグレポートのトリアージ支援・パッチの直接提案という3つの取り組みを拡大すると表明しました。

Claude Codeで日常的にコードを書いている開発者にとっての実務的な含意は、依存ライブラリやビルドチェーンの脆弱性修正を後回しにするコストが上がった、ということです。攻撃側の足回りが速くなるなら、パッチ適用までのリードタイムを縮めることが相対的に重い防御策になります。Claude Codeのsecurity-reviewコマンドのようなツールで自分のコードを先に洗っておく運用は、この文脈では単なる便利機能ではなく前提になりつつあります。

この調査はAnthropicの研究チーム(Evyatar Ben Asher・Keane Lucas・Nicholas Carlini・Newton Cheng・Daniel Freemanの各氏)によるもので、社内のセーフガードチームとは別の視点から、モデルが実際にどこまでの能力を持つかを検証する役割を担っています。

まとめ

Claude Opus 4.6は、Mozillaと共同で見つけたFirefoxの脆弱性のうち1件(CVE-2026-2796)について、テスト環境限定ながらエクスプロイトの組み立てに成功しました。バグの正体はWasmのJIT最適化における型混同で、ClaudeはWasmGCの構造体アクセスを使ってaddrof/fakeobjプリミティブを自力で構築しています。同条件で他の5モデルは失敗しており、Opus世代の中でも閾値を超えた能力差があることを示す結果です。すでに脆弱性は修正済みですが、攻撃と防御の力学がAIの進歩とともにどちらに傾くかは、今後もモデルの世代交代のたびに問い直されることになります。

同じClaudeが脆弱性を「見つける」側で動いた事例はProject Glasswingにあり、逆にモデル自身の悪用を防ぐ仕組みはConstitutional ClassifiersFable 5のサイバーセーフガードにまとまっています。攻撃・発見・防御の3つを合わせて追うと、Anthropicが描く力学の全体像が見えてきます。

この記事を共有:XはてブLinkedIn