Theoriは、AIコーディングエージェントを使ってアプリを28本構築し、それぞれを自社のペネトレーションテスト用プラットフォームでスキャンしました。構築を担当したのは5つのモデルで、AnthropicとOpenAIの製品に分かれます。対象アプリは、仕様書から起こしたもの、雑なプロンプトから組み上げたもの、老朽化したPHPコードベースを書き直したものと多岐にわたります。

研究チームは当初、インジェクション系の脆弱性がいたるところに見つかると予想していました。SQLインジェクションやクロスサイトスクリプティングといった、セキュリティの教科書を埋め尽くすようなバグです。しかし、実際にはほとんど見られませんでした。各モデルは自らプリペアドステートメントやORMを選び取り、入力のサニタイズも行っていたのです。
Theori社のCTOであるAndrew Wesie氏は、こうした「簡単なバグ」に共通する点を指摘します。「フロンティアモデルは、文書化が進んだ脆弱性クラスについてはよく理解しています。ただし、そうした脆弱性クラスはそもそも単純で、特定や修正に必要な文脈も少なくて済むのです」と、同氏はHelp Net Securityに語りました。欠陥はコード1行で明らかになり、修正もコード1行で済んでしまうというわけです。
ほぼすべてのアプリに存在したバグ
最も多く見つかった欠陥は、リソース枯渇やサービス拒否(DoS)に関する問題で、全体の21%を占めました。無制限のページネーション、レート制限の欠如、プロセス全体をブロックしてしまう同期処理などです。これらはほぼすべてのプロジェクトで見受けられました。
その影響は運用面に表れます。サーバーの利用料が跳ね上がったり、攻撃者にサーバーを停止させられたりするのです。
Wesie氏は、これらをモデルがまだ苦手とするカテゴリーに分類しています。「モデルが依然として苦戦している脆弱性クラスは、システムレベルの理解を要するものです」と同氏は述べます。「リソース枯渇系の脆弱性を防ぐには、システムの限界を理解する必要があります。1秒あたり何リクエストを処理できると想定されているか、といった点です」。モデルは、サービスが処理すべきリクエスト数や、アップロードされるファイルの上限サイズを把握しなければなりませんが、そうした数値はコードのどこにも書かれていないことが多いのです。
アプリの規模とともに拡大するバグ
クリティカルな検出事項のうち、およそ半数近くをシークレットの露出が占めました。ハードコードされた鍵、デフォルトのままのSECRET_KEY値、攻撃者がセッションを偽造できてしまうJWTシークレットなどです。これらは、学習データを大量に埋め尽くしているクイックスタート用テンプレートに潜んでおり、「動作するかどうか」というチェックをすり抜けてしまいます。
アクセス制御に関するバグは、規模による違いを物語っていました。ユーザーが自身の権限を超えたデータにアクセスできてしまうIDOR(安全でない直接オブジェクト参照)は、小規模な構築物では検出事項の11%を占めていました。
一方、書き直されたCMSでは28%に達しました。同一ユーザーによる所有権チェックは、局所的で実装も容易です。しかし、数百のエンドポイントにまたがる大規模アプリ全体にこのルールを適用しようとすると、毎回いくつかの抜け漏れが生じてしまうのです。
8,827件から434件へ
スキャンの生データでは8,827件の検出結果が得られました。Theoriは重複を統合したうえで、生き残った候補を確認するための概念実証(PoC)エクスプロイトを構築しました。
最終的に、チームが自信を持って示せる件数として残ったのは434件でした。
今、誰がコードをレビューするのか
AIコーディングが普及する以前から、人間によるレビューはボトルネックでした。生成されるコードの量が増えたことで、そのギャップはさらに広がっています。Wesie氏は、これを乗り越える道は一つしかないと見ています。「少なくとも1行ずつのレビューやセキュリティ上の脆弱性チェックに関しては、自動化されたレビューツールを使う以外に選択肢はありません」と同氏は述べます。
それでも、判断力が求められる場面には人間を配置し続けるべきだと同氏は言います。「脅威モデル、高レベルのアーキテクチャ、製品に関する意思決定といった、本当に重要なレビューは今後も人間が主導すべきです。セキュリティレビューにおいて自動化は人間の専門家を補完するものであり、置き換えるものではありません」と同氏は語ります。
自動化ツール自身にも、クリアすべき基準があります。誤検知(false positive)が少ないこと。そして、根本原因を修正し、他の部分を壊すことなく機能し続けるパッチを出せることです。Wesie氏はこの点を端的にこう表現しました。「各チームは、こうしたツールが実際の問題を解決しているのか、それとも価値を生まずにトークンを浪費しているだけなのかを、注視し続ける必要があります」。
翻訳元: https://www.helpnetsecurity.com/2026/07/23/report-ai-code-vulnerabilities/