深いネイビーの背景に生成された抽象イラスト:奥へと続く背の高いサーバー型の板状構造物の列が、かすかな設計図グリッド上に立っており、それぞれが細いシアンの輪郭で描かれ、中央には小さな扉形のパネルが開いたまま垂れ下がっている。幅広の琥珀色の走査帯が一本、列全体を水平に走り、開いたパネルを通り抜け、その背後にかすかな点線の軌跡を残す。左下では小さな暗いターミナルペインに、光る琥珀色のカーソルブロックが一つ収まっている。テキスト、数字、人物、ブランドマーク、組織ロゴは一切表示されない。OrcaRouter のロゴが右下隅に合成されている。
AI Safety Incidents

設計上の露出:インターネット公開されたMCPサーバー414台を対象としたライブ監査で、68件の脆弱性を発見

著者

Rowan Sterling

公開日

最新モデル · 20すべてのモデルを見る →
ベンチマーク:Artificial Analysis · 毎日更新
すべての記事に戻る

に2026年7月31日ニコラス・パディジャは『Exposed by Design』(arXiv:2608.00150)を発表した。これは13ページのプレプリントで、インターネットに公開されたModel Context Protocolサーバーに対する、彼が初の動的挙動セキュリティ評価と呼ぶものについて記述している。その月の4回の測定実行で640台の稼働中の本番サーバーが確認され、そのうち414台が実際にテストされた。テストでは68件の報告対象脆弱性が見つかり、すべてGitHub Security Advisoriesとして保守担当者に提出された。414台のうち380台——91.8%——はOAuth認証がなく、687個のツールインスタンスがアクセス制御なしのシェル実行をうたっていた。パディジャは、そのいずれかが悪用されていた証拠はないと報告している。テストは概念実証の段階にとどまり、認証情報は取得されず、データも外部に持ち出されなかった。この記録の完全な情報源リスト、深刻度評価、信頼度評価はAIインシデントアーカイブにあり、その周辺で提出された他のMCPおよびインフラストラクチャに関する所見と並んでいる。

監査が実際に行ったこと

Model Context Protocol は、AI エージェントがどこか別の場所でホストされているツール——文書検索、データベースクエリ、シェルヘルパー——を呼び出せるようにするインターフェースです。HTTP 経由でこれを扱い、インターネットから到達可能なサーバーは、実質的に誰もがアクセスできるツールの表面となります。Padilla の論文は、そうしたサーバーの母集団はこれまで適切に数えられたことがなく、それを数えることこそが要点だと論じています。発見が難しく、これまでの調査はいずれも異なる一部だけを見てきたからです。

彼の発見段階では11の情報源——crt.sh、Hugging Face、GitHub、npm、Smithery、PyPI、Censys、FOFA、Shodan、glama.ai、pulsemcp.com——を統合した。その根拠は、これらのうち単独で対象集団を捉えられるものは一つもないという考え方にある。アクティブ段階ではCorvusを使用した。これはパディージャが本研究のために構築したフレームワークで、MCP固有の脆弱性クラス10種類をカバーする34のテストモジュールを備え、13の静的モジュールと21の動的モジュールに分かれている。GitHubではCobaltoSecという組織名で、PyPIではcobaltosec-corvusとして公開されており、リポジトリ自体の統計ファイルにも同じ34モジュールという数値が記録されている。

4回の実行が行われたのは2026年7月15日、18日、21日、24日である。以前の実行では確認番号のみが提供され、最後の3回では3,485、3,948、4,110件の候補をスキャンし、それぞれ140、464、296台の稼働中サーバーを確認した。332件の重複出現を含む972件の生の観測を重複排除すると、640台の一意な確認済みサーバーが残り、そのうち414台(64.7%)が完全な動的テストを受け入れた。Padillaは640を下限とみなしている。発見ソースの一つであるCensysは、2026年5月時点で世界中に21,000を超えるMCP関連エンドポイントがあると推定しており、彼はそれを、自身がテストした件数ではなく規模の推定値として用いている。

An HTML table card titled 'Four runs in July 2026', subtitled 'What each measurement pass scanned, how many servers it confirmed, and how many carried a CRITICAL finding'. Four columns: run date, candidates scanned, servers confirmed, CRITICAL findings. Rows read: 15 July, candidates not tracked, 72 confirmed, no CRITICAL count; 18 July, 3,485 candidates, 140 confirmed, 17 CRITICAL; 21 July, 3,948 candidates, 464 confirmed, 41 CRITICAL; 24 July, 4,110 candidates, 296 confirmed, 35 CRITICAL. A blue summary band beneath reads: 972 raw observations, 332 duplicate appearances, 640 unique confirmed, 414 fully audited, 68 reportable. A footer cites Nicolás Padilla, arXiv:2608.00150, submitted 31 July 2026.

漏斗として読むと、この数字こそが論文の実質的な主張だ。すなわち、広範で低コストな走査は、慎重な走査が候補を検査できるよりも速く候補を見つける。確認された640台のサーバーのうち完全に検証されたのは414台だけで、Padillaは、検証済みの部分集合が未検証の残りと似ているとは主張していない。

それが見つけたもの

見出しとなる発見は認証、あるいはその欠如だ。テストされた414台のサーバーのうち、380台(91.8%)にOAuthがなかった。論文によれば、残りの大半は静的ベアラートークンやAPIキーを使用しており、しばしば予測可能か空であった——固定文字列を受け入れるサーバーもまた、意味のある認証を行っているとは言えない。監査は認証情報なしで公開到達可能なサーバーのみをテストしたため、この数字は構造上、露出した母集団を記述したものであり、MCPサーバー一般の推定値ではない。

報告対象となる68件の検出結果はクラス別に分類され、クラス別の件数は総計を分割するものではなく重複している:認証不備380件、プロトコルファジング受け入れ52件、ツールポイズニング47件、コマンドインジェクション38件、スキーマバイパス31件、サーバーサイドリクエストフォージェリ29件、リソースURI操作24件、プロンプトインジェクション22件、トークン露出18件、サプライチェーン指標14件。サービス拒否(DoS)モジュールは作成されたものの、本番サーバーに対しては意図的に実行されなかった。Padillaは倫理上の理由からこれらを除外している。概要で挙げられた4種類の脆弱性 — SQLインジェクション、クラウドメタデータサービスに対するSSRF、プロンプトテンプレートインジェクション、カーソル操作によるパストラバーサル — は、いずれもこれらのクラス内に現れる。

A generated abstract illustration on a deep navy field: a translucent glass cube representing a tool sits at the centre, its faces cut by thin slots. A fine cyan cord runs from one slot across open space to a small metallic lever at upper left; a short amber spark jumps from another slot to a dark rack of cylinders at lower right. A pale dotted ring of tick marks circles the cube at a distance, a boundary the cord crosses without being stopped. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

シェル実行に関するこの数値には、論文が解決していない注意点が一つ必要である。結果セクションでは、シェル実行かつ認証なしのツールインスタンス687件が、確認済みの640サーバーからなるプール全体で数えられている。議論セクションでは、同じ数値が「動的に監査された414サーバーのうち」という言葉で導入され、その後「より広い確認済み集合」として言及されている。この二つの枠組みは一致しておらず、論文はテスト対象サーバーのツール総数を一度も示していないため、687を割合に変換することはできない。

チャーンは、数字をどう読むべきかを最も大きく変える調査結果だ。7月21日に確認された464台のサーバーのうち、193台(41.6%)は、3日後に4回目の実行で確認した時点で消えていた。CRITICALの検出事項を持つ41台のサーバーのうち9台も消えていた。Padillaはこれをレビューなしのデプロイと解釈している。これはまた、月曜日に確認された検出事項に、木曜日までにパッチを当てる担当者がいない可能性があることも意味する。

3つのケーススタディと、確認できること

3件の調査結果が詳細に報告されており、それぞれにGitHub Security Advisoryの識別子が付いています。lectorium-corpus-mcpにおけるSQLインジェクション(GHSA-m8qh-p8m5-8c48、CRITICAL評価)は、ペイロード' OR 1=1 --と応答サイズの差分によって確認され、文書内容の読み取りや保持は行われていません。epwforgeにおけるSSRF(GHSA-r9fx-qwmc-rvx3、HIGH)は、タイミングによって確認されました。内部メタデータアドレスに対しては11.9秒かかったのに対し、ベースラインは0.3秒であり、メタデータの応答内容は保存されていません。frootaiにおけるプロンプトテンプレートインジェクション(GHSA-5h8f-r9g8-5w5p、HIGH)がこの一連の報告を締めくくります。

3つのうち2つは直接確認できる。2026年10月30日、最初の2つのアドバイザリページはCobaltoSecのアドバイザリリポジトリで公開状態で解決でき、いずれも2026年8月20日に公開され、両方とも依然として「Patched versions: None」と表示し、CVEもない。3つ目のGHSA-5h8f-r9g8-5w5pは、そのアドレスでは見つからないと返された。CobaltoSecのリポジトリには同じ日付に46件の公開済みアドバイザリが掲載されており、MCPサーバーや隣接するAIツールを対象としていた。論文は執筆時点で、19件を公開済み、49件を依然エンバーゴ下と数えていた。frootaiの2026年7月28日付のスキャン成果物がCorvusリポジトリにあるため、テストは実施された。見えないのはアドバイザリだけである。

開示プロセス自体は、詳細ではなく概要で説明されている。68件の指摘はすべて、90日間の調整されたエンバーゴの下、非公開のGitHub Security Advisoriesを通じてメンテナーに伝えられ、非公開での報告が利用できなかった場合には、代わりにPadillaが公開リポジトリのIssueを起票した。論文は事例ベースで、一部のメンテナーは24時間以内にパッチを適用したが、数週間応答しなかった者もおり、一部のリポジトリは放棄されていたと報告している。連絡したメンテナーの件数も応答率の表も示されておらず、これらは投稿時に完全に報告される予定だと述べている。

論文が立証していないこと

「Exposed by Design」は単著のプレプリントである。arXivにはバージョン1が掲載されており、提出日は2026年7月31日で、ジャーナルへの参照も査読に関する記述もない。アーカイブはこの記録の信頼度をBと評価している——文書化されているが、単一の情報源によるもの——そしてその評価はこの記事全体に当てはまる。上記のすべての数値は、Padillaの論文または彼が公開している成果物に由来し、独立した測定によるものではない。

独立した報道機関がこの研究を報じた形跡はない。報道自体は存在する——forkast.news上のAIが書いた分析、LinkedInやMediumの投稿、中国語のセキュリティブログ、日本語の解説記事——だが、いずれも著者への取材も、勧告の確認も、データの追加も行わずにプレプリントを言い換えているだけだ。二次的な報道は裏付けにはならない。

Padilla自身が限界を述べており、それらは異例なほど具体的である。テストされたのはHTTPトランスポートのみで、一般的なローカル事例であるstdioサーバーは対象外である。ディスカバリーはベストエフォートであるため、640は下限である。完全にはテストされなかった226台の確認済みサーバーは、403応答、接続リセット、規格に準拠しないJSON-RPC応答、または単にオフラインであったために除外され、その結果生じる選択バイアスには上限を定められないと論文は述べている。検出はヒューリスティクス——タイミングオラクル、差分応答、スキーマ検査——に依拠しており、ラベル付きベンチマークも、34モジュールについて公表された適合率や再現率も存在しない。彼が記録した変動の激しさは、個々の知見の時間的妥当性を損なう。そして、手作業による検証を単独の研究者が行うことは、彼が指摘しながら定量化していない確証バイアスのリスクを生じさせる。

An HTML card titled 'Established, and not', split into two columns. The left column, headed 'ESTABLISHED', lists: 414 internet-facing MCP servers dynamically tested in four July 2026 runs; 380 of them (91.8%) offered no OAuth authentication; 68 vulnerabilities filed as GitHub Security Advisories; Corvus published open source with 34 modules, 13 static and 21 dynamic; 193 of 464 servers confirmed on 21 July were gone three days later; two case-study advisories public since 20 August 2026, both unpatched. The right column, headed 'NOT ESTABLISHED', lists: that any exposed server was attacked in the wild; a total population, since 640 confirmed servers is a lower bound; 687 shell-exposing tools as a share of tested servers, since the denominators conflict; the third case-study advisory, not publicly resolvable on 30 October 2026; any independent measurement or newsroom verification; module precision or recall, since no labelled benchmark is published. A footer cites Nicolás Padilla, arXiv:2608.00150 and the CobaltoSec advisory repository.

その後、何が変わりましたか

これまでの実用的な成果は、ツールとアドバイザリの配信である。Corvusはインストール可能で文書化されており、CobaltoSecのアドバイザリリポジトリには、2026年10月30日の時点で46件の公開エントリが収載されていた。これは、論文が7月末に数えた19件の公開開示に対するものだ。論文自体のケーススタディのうち2件には、依然として修正版が存在しない。それらのサーバーについては、開示によって公開記録は生まれたが、まだ修正は生まれていない。

防衛側にとって、この研究で有用なのは見出しの数字ではなく、その手法です。認証情報なしで応答したサーバーのみから得られた91.8%という数字は、狭いながらも現実的なことを示しています。露出しているものの大半はそもそもロックされたことがなく、3日間での入れ替わりは、その多くがデモ、プロトタイプ、テスト用に立ち上げられ、堅牢化されなかったことを示唆しています。この論文から言えないのは、組織が実際に依存しているMCPサーバーにも同じことが当てはまるかどうかです。なぜなら、それらはサンプルに含まれていなかったからです。