研究機関のEpoch AIは10月30日、報告書を公開した。Zhipu AI(智譜)が8月にオープンソース化したGLM 5.3が、実験の中でFirefoxを狙う攻撃プログラムを自律的に作成し、9月17日から10月26日にかけて公開されたFirefoxの正式版6本がすべて突破されたという。
攻撃の結果は次のとおりだ。ユーザーがFirefoxで悪意あるWebページを開くと、クリック操作なしでローカルファイルが読み出され、攻撃者に送信される。モデルが手がかりにした脆弱性の情報は、Mozillaがすでに公開していたものの、まだ正式版に反映されていなかったセキュリティ修正から得られたものだった。
パッチギャップはどう悪用されたか
Epochはこの種の攻撃を「パッチギャップ」の悪用と呼ぶ。オープンソースプロジェクトのセキュリティ修正が公開リポジトリにコミットされると、攻撃者は変更内容を突き合わせて脆弱性の場所を逆算できる。一方、一般ユーザーの手元にある正式版に修正が届くまでには時間がかかる。
実験では、リソースが限られ技量も平均的な攻撃者を意図的に想定し、各バージョンについてモデルにはその時点で入手できる公開情報だけを与えた。1回の試行は最長48時間で、最速の成功例は約12時間だった。あるケースでは、モデルはメモリ脆弱性の修正記録を足がかりに突破口を開き、Firefoxの防御機構にファイルアクセスを阻まれた後も、後続の複数の段階を自力でつないでみせた。
直近のバージョンに対する攻撃はさらに進んでいた。モデルは、パッチギャップの脆弱性1件と、まだ公開されていない別の脆弱性を連鎖させて使ったのである。後者は10月27日公開のFirefox 159.0で修正された。Epochの報告書が引用しているのはMozillaのセキュリティ勧告mfsa2026-118で、CVE番号は記載されていない。
"We did not trigger any safeguards or refusals from any provider, including Z.ai, when using GLM 5.3 in this way."
(この方法でGLM 5.3を使った際、Zhipu AIを含むいずれのプロバイダーの安全機構や拒否も作動しなかった。)
報告書には、これに対するZhipu AIの反応は記されていない。
FirefoxとChromeで結果は分かれた
同じ手法はChromeには通用しなかった。EpochはChromeにも約10万ドル分の計算資源を投じている。研究者は、これをChromeのほうが安全であることの強い証拠と受け取るべきではないと念を押している。プロンプトを改良したり、より強力なオープンモデルを使ったりすれば、結果が変わる可能性があるためだ。
コスト面では、Firefox関連の研究全体で10万ドルを超えるAPI費用がかかった。大半はオフラインのテスト環境の構築と初期の試行錯誤に充てられている。環境が整った後は、1バージョンを攻略するのに約1000ドルで済んだ。
クローズドモデルとの違いは、モデルの重みが公開されている点にある。AnthropicのMythosも以前から脆弱性探索に使われており、報告書によればMythosはWindowsのバイナリを逆コンパイルしてパッチの内容を読み取れるが、クローズドモデルにはプロバイダー側の審査や拒否の仕組みという歯止めがある。GLM 5.3の重みは誰でもダウンロードしてローカルで動かせるため、プロバイダー層の防護は及ばない。報告書はさらに、Kimi K3.1 Proの重みが11月初旬に公開される見込みで、初期テストではこの種の作業でGLM 5.3を上回る可能性があると伝えている。
研究者の提言と限界
Epochの提言は3点ある。セキュリティ修正は配信の準備が整うまで公開しないこと。テスト版から正式版への反映をさらに速めること。連鎖して悪用できる複数の脆弱性を一度にまとめて修正しないこと。FirefoxもChromeも現在は毎週リリースだが、研究者はこの速度でもまだ足りない可能性があるとみている。
報告書には明確な制約もある。実験はすべて研究者が自前で構築したオフラインのシミュレーション環境で行われ、実ネットワーク上でユーザーを攻撃したことはない。成功率はバージョンごとの集計にとどまり、より大きなサンプルでの分析はない。著者自身も、オープンモデルがサイバー攻防の構図をどう変えるかについて結論は出さないと明言している。オープンモデルがクローズドソフトのバイナリを逆コンパイルしてパッチを読み取れるかどうかは、今回は検証されていない。
参考資料:Epoch AIの研究報告(対象バージョンの範囲、1回あたりの試行時間、APIコストを確認);CocoLoop;Mozillaのセキュリティ勧告(Firefox 159.0の修正記録を確認)。