Anthropicは、Model Context Protocol (MCP) SDKにおける深刻なコマンドインジェクションの脆弱性であるCVE-2026-30623を修正しないことを発表しました。これにより、20万件以上の導入済みインスタンスが危険にさらされています。ツール統合にMCPを利用している開発者は、この脆弱性を即時のリスクとして扱う必要があります。

この脆弱性が重大な理由

MCPは、LLMを活用したアプリケーションが標準化されたプロトコルを通じて外部ツールを呼び出すことを可能にします。4つすべての公式SDKには、モデルからの任意のテキストを受け取り、それをホストのシェルに直接渡すSTDIOトランスポートが搭載されています。CVE-2026-30623のバグにより、悪意のあるモデル、あるいは侵害されたツールの説明文を通じて、ホストプロセスが実行可能なあらゆるコマンドを注入できてしまいます。Anthropicはこの挙動は意図的なものであるとして修正プログラムのリリースを拒否しており、この脆弱性は、約1億5,000万件のSDKダウンロードという現在のサプライチェーン内に残ることになります。

攻撃者が実行可能なこと

  • コマンドインジェクション – サーバーの設定ファイルを編集できる者は誰でも、ホストマシン上でシェルコマンドを実行でき、潜在的にシステムへのフルアクセス権を取得できます。
  • ツール・ポイズニング(ツールの汚染) – ツールの説明文に悪意のある指示を埋め込むことで、攻撃者はモデルを欺き、クラウドの認証情報などの機密データを外部のエンドポイントに送信させることができます。
  • 脆弱な認証 – 1,400件のMCPサーバーを調査した結果、38.7%に認証が全く備わっておらず、インジェクション経路が極めて容易に到達可能であることが判明しました。
  • 低い信頼スコア – インデックス化されたMCPサーバーのうち、コミュニティの高い信頼基準を満たしているのはわずか12.9%であり、大多数が最小限の保護策で運用されていることを示しています。

これらのベクトルが組み合わさることで、大規模なサプライチェーン攻撃の攻撃対象領域(アタックサーフェス)が形成されます。特に、パブリックなSDKリポジトリからMCPサーバーが自動的にプロビジョニングされる環境では、そのリスクが高まります。

今後の仕様変更 — そして、なぜそれが今すぐには役に立たないのか

新しいMCP仕様のリリースカンディデートが7月28日に予定されています。これには、認可をOAuth 2.1およびOpenID Connectへと移行することや、標準的なロードバランサーの背後にあるサーバーへのサポート追加が含まれています。これらの変更はセキュリティモデルを改善するものですが、脆弱性のある20万件のインスタンスで使用されているSTDIOトランスポートを遡及的に修正するものではありません。また、仕様の更新後に開発者が汚染されたツールの説明文を公開することを防ぐものでもありません。

開発者が今日できるリスク軽減策

  • STDIOベースのサーバーを監査する – MCPサーバーを起動する設定ファイルを制御できない場合は、そのサーバーを信頼できないものとして扱い、STDIOトランスポートの使用を避けてください。
  • ツールのメタデータを検査する – 各ツールの説明文を注意深く確認し、データを外部に流出させる可能性のある隠れたコマンドやURLがないかチェックしてください。
  • 人気指標を鵜呑みにしない – インストール数が多いからといって、安全な実装が保証されているわけではありません。各デプロイメントを個別のリスクとして扱ってください。
  • OAuth 2.1の採用を確認する – 単に「MCP互換」と謳っているだけでなく、サーバーが実際にOAuth 2.1およびOpenID Connectを実装しているかを確認してください。

今後の注目点

実装ガイドや、STDIOトランスポートに対処するその後のパッチに注意を払ってください。それまでは、STDIOをより制御されたトランスポートレイヤーに置き換えるか、脆弱なコードパスに依存しない代替のツール呼び出しフレームワークに移行することが最も安全な方法です。

結論: Anthropicの決定により、容易に悪用可能な広大な攻撃対象領域が残されたままとなっています。MCPサーバーの完全性を保証できない開発者は、STDIOトランスポートから離れ、システムが悪意のあるコマンドの経路にならないよう、すべてのツールの説明文を精査する必要があります。

出典: https://dev.to/gentic_news/mcps-cve-2026-30623-anthropic-wont-fix-stdio-command-injection-mh6