MCP公式SDKのSTDIOトランスポートを介したコマンド実行の脆弱性

タグ
国外
目次
  1. 脆弱性の内容
  2. 時系列
  3. 対象の製品と版
  4. 悪用の状況
  5. 修正と回避策
    1. 仕様と公式SDKの扱い
    2. LiteLLMでのコマンドの制限
    3. Flowiseの修正の回避
    4. 調査主体が示した対策
  6. 未公表の事項
  7. 注
  8. 出典
  9. 更新記録

Cloud Security Allianceの研究ノートによると、AnthropicのModel Context Protocol(MCP)の公式SDKは、STDIOトランスポートで渡されたコマンドを、サブプロセスが正当なMCPサーバーかを検知する前に実行する⁠[17]。MCPプロジェクトはセキュリティポリシーの現行版で、SDKのstdioトランスポートはサンドボックスではないとしている⁠[1]。

脆弱性の内容

Anthropicは、AIアシスタントとデータのあるシステムをつなぐ新しい標準としてMCPをオープンソースで公開し、仕様とSDKを提供した⁠[29]。MCPの仕様では、stdioトランスポートでクライアントがMCPサーバーをサブプロセスとして起動し、標準入出力でJSON-RPCのメッセージをやりとりする⁠[30]。クライアントは可能な限りstdioを支援すべき(SHOULD)だとする⁠[30]。Tom's Hardwareは、MCPが前年12月にLinux FoundationのAgentic AI Foundationに寄贈されたと報じた⁠[25]。

Infosecurity Magazineが引いたOX Securityの説明では、この問題は従来のコーディングの誤りではなく、Python、TypeScript、Java、Rustを含むAnthropicの公式MCP SDKの設計の決定に組み込まれている⁠[20]。Cloud Security Allianceは研究ノートで、SDKはサーバーの起動に失敗するとエラーを返すが、そのときにはコマンドはすでに実行されていると説明した⁠[17]。

The Hacker Newsは、OXが見つけた脆弱性を4つに分類して報じた⁠[23]。

  • 認証の有無を問わないMCP STDIOのコマンド注入⁠[23]
  • ハードニングの回避を伴う直接のSTDIO設定⁠[23]
  • ゼロクリックのプロンプトインジェクションによるMCP設定の編集⁠[23]
  • MCPマーケットプレイスを経由した隠れたSTDIO設定⁠[23]
表1:下流の製品に割り当てられたCVE
CVE概要成立条件CVSS資料
CVE-2026-30623LiteLLMのMCPサーバー作成機能で、JSONの設定のcommandとargsを検証せずにホストで実行する-9.8(CISA ADP、CVSS 3.1)⁠[4]
CVE-2026-30615Windsurfのプロンプトインジェクションで、攻撃者のHTMLの処理によりローカルのMCP設定が書き換えられ、悪意あるMCP STDIOサーバーが自動登録される利用者の操作なし8.0(CISA ADP、CVSS 3.1、AV:L)⁠[5]
CVE-2026-30616JaazのMCP STDIOのコマンド実行の処理で、攻撃者のコマンドが実行されるネットワークの要求-⁠[6]
CVE-2026-30617LangChain-ChatChatのMCP STDIOサーバーの設定と実行の処理公開されたMCP管理画面からの設定-⁠[7]
CVE-2026-30618FayのMCP STDIOサーバーの管理とコマンド実行の処理公開されたMCP管理画面からの設定-⁠[8]
CVE-2026-30624Agent ZeroのExternal MCP Serversの設定で、JSONのcommandとargsが十分な検証なく実行される--⁠[9]
CVE-2026-30625Upsonicで、許可リストはあるがnpm・npxの引数で任意のコマンドを実行できる--⁠[10]
CVE-2025-65720GPT Researcherで任意のコマンドが実行される細工したHTMLページの操作-⁠[11]
CVE-2026-40933FlowiseのMCPアダプタのstdioコマンドの安全でない直列化(CWE-78)認証済みの攻撃者10.0(CNA、CVSS 3.1)〔注1〕⁠[12]
CVE-2026-26015DocsGPTで「MCP test」の挙動を回避する細工により任意のコードを実行できる認証なし-⁠[13]

同じ記事でThe Hacker Newsは、同じ根本の問題による脆弱性が過去1年にも独立して報告されていたと報じた⁠[23]。挙げたのはMCP Inspector、LibreChat、WeKnora、@akoskm/create-mcp-server-stdio、Cursorの脆弱性である⁠[23]。

目次へ

時系列

時系列
日付主体内容資料
2024年11月25日AnthropicMCPをオープンソースで公開した⁠[29]
2025年11月OX SecurityMCPの研究を始めた⁠[17]
2026年1月Anthropic協調的な開示の中で、挙動を意図したものと確認した⁠[17]
2026年4月15日OX SecurityMCP SDKのstdioトランスポートのコマンドインジェクションを扱う報告を公表した⁠[3、20]
2026年4月15日CVE ProgramCVE-2026-30615、CVE-2026-30616、CVE-2026-30617、CVE-2026-30624、CVE-2026-30625の記録を公開した⁠[5、6、7、9、10]
2026年4月21日LiteLLMCVE-2026-30623の修正を告知した⁠[3]
2026年4月21日CVE ProgramCVE-2026-40933の記録を公開した⁠[12]
2026年4月29日CVE ProgramCVE-2026-26015の記録を公開した⁠[13]
2026年5月28日Obsidian SecurityFlowiseのCVE-2026-40933の報告を公開した⁠[18]
2026年7月15日CVE ProgramCVE-2026-30623、CVE-2026-30618、CVE-2025-65720の記録を公開した⁠[4、8、11]

目次へ

対象の製品と版

Infosecurity Magazineは、OX Securityが報告で、200以上のオープンソースのプロジェクトと1億5000万のダウンロードが影響を受けうるとしたと報じた⁠[20]。OXは、7000以上の公開サーバーと、合わせて最大20万の脆弱なインスタンスも挙げた⁠[20]。

Cloud Security Allianceの2026年4月20日の研究ノートでは、OXの研究は5か月で30件以上の責任ある開示につながった⁠[17]。OXはCriticalとHighのCVEを10件以上特定し、有料の顧客がいる6つの稼働中の本番基盤で概念実証の悪用を示した⁠[17]。無害な概念実証のMCPを11の公開の登録簿とマーケットプレイスに提出したところ、9つが審査なしで受け付けた⁠[17]。

表2:対象の製品と修正版
製品影響を受ける版修正版資料
LiteLLM1.18.10v1.83.6-nightly以降(最初の安定版はv1.83.7-stable)⁠[3、4]
Windsurf1.9544.26-⁠[5]
Jaaz1.0.30-⁠[6]
LangChain-ChatChat0.3.1-⁠[7]
Fay4.3.1-⁠[8]
Agent Zero0.9.8-⁠[9]
Upsonic0.71.6-(0.72.0で、Stdioサーバーがマシン上で直接コマンドを実行しうる旨の警告を加えた)⁠[10]
GPT Researcherv3.3.7-⁠[11]
Flowise3.1.0より前3.1.0⁠[12]
DocsGPT0.15.0以上0.16.0未満0.16.0⁠[13]

The Hacker NewsとTom's Hardwareは、Bisheng〔注2〕も修正済みだと報じた⁠[23、25]。Tom's Hardwareによると、ゼロクリックでローカルのコード実行に至るWindsurfは「reported」の状態にある⁠[25]。

目次へ

悪用の状況

CISA ADPは、CVE-2026-30623とCVE-2026-30615のSSVCの評価で、悪用(Exploitation)をnoneとした⁠[4、5]。CVE-2026-40933の悪用の評価はpocである⁠[12]。

Obsidian Securityは、細工したチャットフローの読み込みで、Flowiseの1クリックの認証後の遠隔コード実行を起こせると報告した⁠[18]。SecurityWeekは、Obsidian Securityがこの脆弱性の技術情報と概念実証のコードを公開したと報じた⁠[26]。

目次へ

修正と回避策

仕様と公式SDKの扱い

Infosecurity Magazineが引いたOX Securityの説明では、Anthropicは挙動が設計どおりだと認めてプロトコルの変更を断った⁠[20]。STDIOの実行モデルは安全な既定で、無害化は開発者の責任だと述べた⁠[20]。

Cloud Security Allianceは研究ノートで、AnthropicがOXの最初の連絡から9日後にSECURITY.mdを更新し、STDIOアダプタは注意して使うべきだと記したと説明した⁠[17]。AnthropicはSDKの設計を変えなかった⁠[17]。MCPプロジェクトは、仕様のリポジトリにSECURITY.mdを公開した⁠[2]。

MCPプロジェクトのセキュリティポリシーのページによると、信頼モデルと、意図した挙動で脆弱性に当たらないものの一覧を含む全文は、仕様のリポジトリのSECURITY.mdにある⁠[1]。仕様と公式SDKの欠陥から生じるインジェクションなどの実装の誤りと、サンドボックスの回避は、脆弱性として扱う⁠[1]。

ポリシーは、stdioのクライアントとサーバーが環境上同等の権限で動きうるとした⁠[1]。SDKは、stdioの通信路で悪意のある相手方からどちらの側も守らない⁠[1]。悪意のあるサーバーは起動されただけで任意のコードを実行でき、悪意のあるクライアントは起動したサーバーのプロセスを完全に制御できる⁠[1]。

同じポリシーでは、stdioの一方が他方を停止させたり資源を枯渇させたりするだけの報告は対象外で、リモートのトランスポートから届くか、サンドボックスの回避に至る場合は対象にする⁠[1]。stdioのサーバーを低い権限で動かす運用では、その境界の隔離は運用者の責任になる⁠[1]。

SecurityWeekは4月15日の記事で、OXがAnthropicをはじめMCPの提供者に開示したと報じた⁠[19]。当初は反応が乏しく、最終的な共通の反応は、対応せずに「by design」とするものだった⁠[19]。OXはAnthropicへの解決策として、無害化しないSTDIO接続の廃止、プロトコルの段階でのコマンドのサンドボックス化、明示的に選ぶ「dangerous mode」、マーケットプレイスの検証の標準を挙げた⁠[19]。

Tom's Hardwareによると、OXはマニフェストのみの実行やSDKのコマンドの許可リストなど、プロトコルの段階の修正を繰り返し勧めた⁠[25]。Anthropicはこれを断り、報告を公表する意向にも異議を唱えなかったと報じた⁠[25]。

LiteLLMでのコマンドの制限

stdioのMCPサーバーを追加すると、commandの値がそのままStdioServerParametersに渡り、プロキシのホストでサブプロセスとして実行されたと、LiteLLMは4月21日の告知で説明した⁠[3]。影響を受けたのは、MCPサーバーの作成と更新、プレビュー用の/mcp-rest/test/connectionと/mcp-rest/test/tools/list、設定やDBから実行時に復元したサーバーだった⁠[3]。

LiteLLMは深刻度をCriticalとし、認証の無い利用者は悪用できず、攻撃者には有効なLiteLLMのAPIキーと、修正後はPROXY_ADMINの役割が必要だと説明した⁠[3]。修正(commit 7b7f304、PR #25343)は4点からなる⁠[3]。

  • stdioのcommandを既知の起動コマンド(npx、uvx、python、python3、node、docker、deno)に限る許可リスト⁠[3]
  • Pydanticの段階での要求の検証⁠[3]
  • 起動時の再検証⁠[3]
  • プレビュー用のエンドポイントのPROXY_ADMINへの限定⁠[3]

LiteLLMは利用者に、v1.83.7-stable以降への更新と、既存のstdioのMCPサーバーの設定の確認を求めた⁠[3]。

Flowiseの修正の回避

CVE-2026-40933の記録では、Flowiseには入力検査と安全なコマンドの一覧があったが、npxなどを実行用の引数と組み合わせてOSのコードを実行できた⁠[12]。

Obsidian Securityは、この問題をFlowiseに開示し、OX Securityもnpx -cによる同様の回避を報告したと説明した⁠[18]。両方の問題にCVE-2026-40933が割り当てられた⁠[18]。Obsidian Securityは、入力検査による修正は容易に回避でき、最新版も影響を受けるとした⁠[18]。Flowise Cloudはstdio MCPが無効のため影響を受けないが、自己ホストの導入は既定で脆弱である⁠[18]。

Obsidian Securityが最も有効な緩和策として挙げたのは、stdio MCPが要らなければCUSTOM_MCP_PROTOCOL=sseで無効にすることだった⁠[18]。

調査主体が示した対策

Cloud Security Allianceは研究ノートで、Windsurfの利用者に1.9544.26より後の版への更新を推奨した⁠[17]。Cursor、VS Code、Claude Code、Gemini-CLIの利用者には、各社の勧告を見守るよう勧めた⁠[17]。The Hacker Newsは、推奨される対策として5つを挙げた⁠[23]。

  • 機密サービスへの公開IPからのアクセスの遮断⁠[23]
  • MCPのツール呼び出しの監視⁠[23]
  • MCP対応サービスのサンドボックスでの実行⁠[23]
  • 外部のMCP設定の入力を信頼しないこと⁠[23]
  • 検証済みの配布元からだけのMCPサーバーの導入⁠[23]

目次へ

未公表の事項

  • Anthropicが今回の報告について自ら出した説明
  • MCPの仕様と公式SDKの変更の予定
  • Windsurf、Jaaz、LangChain-ChatChat、Fay、Agent Zero、GPT Researcherの修正版
  • Bishengの影響を受ける版と修正版
  • 下流の製品での悪用による被害

注

  • 〔注1〕SecurityWeekは5月30日の記事で、CVE-2026-40933のCVSSを9.9と書いた⁠[26]。
  • 〔注2〕The Hacker Newsは、CVE-2026-33224をBishengとJaazの2か所に挙げた⁠[23]。JaazのCVE記録はCVE-2026-30616である⁠[6]。

出典

当事者

  • [1]Model Context Protocolプロジェクト『Security Policy』(公開日不明、2026年10月31日更新、2026年11月7日閲覧)
  • [2]Model Context Protocolプロジェクト『SECURITY.md』(公開日不明、保存記録のみ) 保存記録

関係組織

公的機関

調査・観測

報道機関

背景資料

更新記録

  • 2026年4月26日:公開した。
  • 2026年4月29日:CVE ProgramのDocsGPTのCVE記録(出典13)を加え、「脆弱性の内容」「時系列」「対象の製品と版」を改めた。
  • 2026年5月28日:Obsidian SecurityのFlowiseの報告(出典18)を加え、「時系列」「悪用の状況」「修正と回避策」を改めた。
  • 2026年5月30日:SecurityWeekのFlowiseの記事(出典26)を加え、「悪用の状況」と「注」を改めた。
  • 2026年7月15日:CVE ProgramのLiteLLM・Fay・GPT ResearcherのCVE記録(出典4、8、11)を加え、「脆弱性の内容」「時系列」「対象の製品と版」を改めた。
  • 2026年7月16日:CVE-2026-30623の記録の7月16日の更新(出典4)で示されたCISA ADPのCVSSとSSVCの評価を、「脆弱性の内容」と「悪用の状況」に加えた。
  • 2026年9月7日:Obsidian Securityの報告(出典18)の9月7日の更新版に合わせ、「修正と回避策」を改めた。
  • 2026年10月31日:Model Context Protocolプロジェクトのセキュリティポリシー(出典1)の10月31日の版を加え、リードと「修正と回避策」を改めた。
  • 2026年11月6日:Infosecurity Magazineの記事(出典20)の11月6日の更新版に合わせ、「脆弱性の内容」「対象の製品と版」「修正と回避策」を改めた。

目次へ