7月16日、Aikido.devが「Benchmarking 13 AI Models on Known CVE Detection」と題した記事を公開した。13のAIモデルを26件の既知CVEに対してベンチマークし、脆弱性検出能力とコスト効率を比較した実証実験だ。結論を先に言えば、フラッグシップモデルへの課金が最善とは限らない——そのことを実測データが示している。なお、本記事で使用するモデル名(gpt-5.4-nano、gpt-5.6-terra、grok-4.5、glm-5.2、claude-opus-4-8など)は元記事の表記をそのまま使用している。
「一番高いモデルが最善」とは限らない
このベンチマークで最も実用的な示唆は、フラッグシップモデルへの課金が必ずしも正解ではないという点だ。
コストの観点で具体的な数字を示す。gpt-5.4-nanoを3回実行してプールすると約170ドルで18/26件を検出できる(※コスト数値は26件のCVEセット全体に対する実験費用)。一方、フラッグシップのgpt-5.6-terraの1回実行は平均的にほぼ同数しか検出しない。さらに、gpt-5.4-miniを3回実行(約460ドル)すれば20/26件に達する。
ここで鍵となるのが「pass@3」という手法だ。1回の実行では確率的に見逃すバグを、複数回実行した結果をプール(合算)することで補完する考え方である。AIモデルの出力は確率的であるため、同じプロンプトでも実行ごとに着目する箇所が微妙に異なる。この「ランダム性」を逆手に取り、複数回の実行で互いの見落としを補い合わせることで、1回実行より高いカバレッジを低コストで得られる。コードレビューにAIを組み込む場面では特に有効な戦略だ。
実際、gpt-5.4-nanoを例に取ると、1回の実行では14件に届かないが、3回プールすると18件まで跳ね上がる(4件増)。claude-haiku-4-5はばらつきが最も顕著で、同じモデル・同じタスクで1回目が7件、別の回が13件という結果が出た。
最高精度はGPT-5.6、ただし差は縮まっている
リコール(検出率)の最高スコアはGPT-5.6(sol/terra)の23/26件(88.5%)。次点はgrok-4.5が20件、Claude Opusシリーズが15〜18件だった。
下表の「pass@3(検出数/26)」列について補足する。gpt-5.6(sol/terra)やgrok-4.5はpass@1の値である可能性があり、元記事の定義上、複数回実行のプール値と単回実行値が混在している可能性がある。元記事の定義に従いそのまま掲載するが、各行の測定条件については元記事を直接参照されたい。
| モデル | pass@3(検出数/26) |
|---|---|
| gpt-5.6 (sol/terra) | 23 |
| grok-4.5 | 20 |
| gpt-5.4-mini × 3 | 20 |
| claude-opus-4-8 | 18 |
| gpt-5.4-nano × 3 | 18 |
| glm-5.2 | 16 |
| claude-opus-4-7 | 15 |
| claude-haiku-4-5 | 13 |
オープンウェイトモデルのglm-5.2は16/26件(61.5%)を記録し、プロプライエタリモデルの中堅水準に並んでいる。
どのCVEが見つからないのか
全モデルが2件のCritical CVE(デシリアライゼーションによるRCEと格納型XSS)を検出した。分類が容易なのは、「攻撃者制御の入力が短い経路で既知の危険な操作に到達するパターン」だ。シェルexec、HTMLシンク、壊れた署名検証などがこれに当たり、安価なモデルもフラッグシップも同様に検出できる。
差が出るのは推論が必要な脆弱性だ。典型例として挙げられているのが「SQL Injection-1」。ORMがエスケープしないカラムエイリアスを介した間接インジェクションで、gpt-5.5とgpt-5.6(sol/terra)だけが追跡できた。CVEの詳細はNISTのNational Vulnerability DatabaseやGitHub Advisory Databaseでも確認できる。
- アクセス制御の欠落(missing authorization check)
- 複数ファイルにまたがる長い間接的なチェーンを辿らないと見えないインジェクション
これらは依然として上位モデルと下位モデルを分ける。
推論レベルを上げるのは効果的か
各モデルの推論設定を「high」と最大値(GPT-5.4/5.5・Claudeは「xhigh」、GPT-5.6・grok-4.5・glm-5.2は「max」)で比較した。なお、gpt-5.6-lunaはこのセクションの比較対象としてのみ登場するモデルで、上表の主要評価対象とは別に推論設定の検証で用いられたものだ。
明確に割に合ったのは次の2つ:
- gpt-5.5:+3件の検出、コスト1.5倍
- glm-5.2:+3件の検出、コスト1.3倍
一方、gpt-5.6-terraは最大推論にしてもコスト2.2倍に対して検出数ゼロ増。claude-opus-4-8は+2件だがコスト2倍。gpt-5.6-lunaとgpt-5.4-nanoに至っては推論を上げると1件減少した(実行ごとのノイズ範囲内)。
ベンチマークの設計
今回の実験は、チャットウィンドウへの貼り付けではなく、Aikido.devが本番環境で使用している**AI Code Analysisハーネス**(ツールを持ち、リポジトリをナビゲートする「監査者型」エージェント)を通じて実施された。
各CVEの所在は既知のため、エージェントは脆弱なコードスニペットに直接誘導された。これにより「コードベースの見当違いの場所をさまようためにトークンを消費した」という原因での検出失敗を排除し、純粋にモデルの推論能力を測定している。プロンプトは短く、モデル非依存にそろえられている。
26件のCVEはGitHub Advisory Databaseからランダムに選出。SQLインジェクション、デシリアライゼーションRCE、XSSなど複数言語・プロジェクト種別にまたがる。
詳細はBenchmarking 13 AI Models on Known CVE Detectionを参照していただきたい。