CVE-2026-59950 MCP Python SDKでHost/Origin未検証のSSRF脆弱性発覚 AI Security担当者必読のMCP運用ガイド

結論
- 危険度: 情報なし
- 対象: (詳細はベンダーアドバイザリ参照)
- 修正: ベンダーアドバイザリ参照
- KEV: No (NVD Critical由来。CISA KEVには未登録)
タイトルの緊急度プレフィックス(【至急】【最重大】等)の意味
| 表記 | 条件 | 意味 | 対応目安 |
|---|---|---|---|
| 【至急/ランサム悪用】 | CISA KEV登録 + ランサムウェア悪用観測 | ランサムグループが現在進行形で悪用 | 本日中に対応開始 |
| 【至急/重大】 | CISA KEV登録 + CVSS 9.0以上 | 実世界で攻撃観測あり + スコア極めて高い | 本日中に対応開始 |
| 【重大/KEV登録】 | CISA KEV登録(CVSS低またはNVD未反映) | 実世界で攻撃観測あり | 数日以内 |
| 【最重大】 | CVSS 9.5以上(KEV未登録) | 理論上の危険度ほぼ満点、攻撃観測はまだない | 1週間以内に対応計画 |
| 【重大】 | CVSS 9.0〜9.4(KEV未登録) | Critical帯の理論的高リスク | 1〜2週間以内 |
| 【高】 | CVSS 7.0〜8.9(KEV未登録) | High帯のリスク | 計画的に対応 |
| (プレフィックスなし) | CVSS 7.0未満 | Medium以下のリスク | 通常メンテで対応 |
「至急」と「最重大」の違い: 「至急」は CISA(米国政府機関)が 実際に悪用を観測した CVEに付与されます。「最重大」は CVSS スコア上は最高峰だが、まだ悪用観測がない ものです。同じCVSS 9.8でもKEV登録の有無で扱いが変わります。
最終更新: 2026-07-15 | 本記事は公式情報をもとに作成しています。最新情報はベンダー公式アドバイザリを必ずご確認ください。
| STEP | やること | かかる目安 |
|---|---|---|
| STEP 1 | 何が起きているか理解する | 5分 |
| STEP 2 | 急ぎ対応すべきか判断する | 3分 |
| STEP 3 | 自分の環境が対象か確認する | 5分〜環境による |
| STEP 4 | 修正を適用する | 10分〜 |
| STEP 5 | 修正されたことを確認する | 3分 |
STEP 1: 何が起きているか
一言でいうと
CVE-2026-59950は、Python向けのMCP SDKの古いバージョンで、WebSocket接続のOrigin(オリジン)検証が欠けています。攻撃者はOriginチェックを回避し、不正なリクエストで接続できてしまいます。LLMゲートウェイやAgentフレームワーク運用者にとって、セキュリティリスクが高い問題です。
やさしく説明すると
イメージとしては、あなたの家の玄関のドアに鍵はかかっているのに、訪問者が「この鍵は自分の家のものだ」と証明しなくても勝手に入れる状態です。通常は誰が来たかを確認する「Origin(送り元)」チェックが働きますが、古いバージョンのSDKはこれを省略しています。だから悪意ある人が勝手に住み着くかもしれません。
技術的な原因
Pythonで実装されたModel Context Protocol(MCP)SDKの mcp.server.websocket.websocket_server に問題があります。このWebSocketサーバーは、HTTPヘッダーの一つである Host と Origin の検証を行わず、信頼された接続元かを判断しません。つまり、「CWE-346 認証回避」と「CWE-1385 不十分なヘッダー検証」に該当する欠陥です。
この不備により、任意の異なるオリジン(サイト・サーバー)からWebSocket接続を受け入れてしまいます。SDKレベルで制御が欠落していたため、アプリケーション側もきめ細かく制御できない場合があります。
影響を受けると何が困るか
- APIキー(OpenAIやAnthropicなど)を盗まれるリスクが高まる
- LLMのコンテキスト(顧客データなど機密情報)を攻撃者に奪われる
- Agentフレームワーク乗っ取りによる不正操作やプロンプト改ざんが可能になる
- モデル強化データ(RAG: Retrieval-Augmented Generation)の改ざんやデータ破壊
- 請求コスト増大やサービス妨害(DoS)攻撃が発生する可能性
- テナント間の情報漏洩、多数ユーザーへの横展開攻撃の恐れ
- AIコーディングツール(CursorやClineなど)経由でローカルファイルの読み取りや任意コード実行を許す恐れ
- IDE拡張機能のリモート操作による開発環境乗っ取りリスク
- 環境変数ファイル
.envや認証情報の外部流出
もっと詳しく調べたい人へ — 公式情報源マップ
本記事は以下の公式・準公式の情報源から内容を集約しています。一次情報を確認したい場合や英語で詳細を読みたい場合は、各リンクから直接アクセスできます。
| カテゴリ | 情報源 | 言語 | 何が分かるか | リンク |
|---|---|---|---|---|
| 総合 | NVD(米国 NIST) | 英 | 米国政府の脆弱性データベース。CVSSスコア、影響を受けるCPE、参考リンクの総合ハブ。最も網羅的。 | 開く |
| 総合 | MITRE CVE | 英 | CVE採番機関の公式記録。CVE記述の「正本」。NVDより記載が簡潔だが一次情報。 | 開く |
| 総合 | JVN iPedia(JPCERT/CC・IPA) | 日 | 日本のCSIRTが運用する脆弱性対策情報データベース。日本語で概要・対策が読める。掲載がない場合あり。 | 開く |
| 総合 | CISA KEV(悪用観測カタログ) | 英 | 米国CISAが実際に悪用を確認している脆弱性のカタログ。掲載されていれば最優先で対応。 | 開く |
| 総合 | GitHub Advisory Database | 英 | OSSパッケージ(npm/pypi/maven/composer/go等)別の脆弱性アドバイザリ。修正PRへのリンクが豊富。 | 開く |
| 総合 | OpenCVE | 英 | 複数CVEデータベースの集約検索サービス。タイムラインや関連CVEの俯瞰に有用。 | 開く |
| Linux | Red Hat CVE | 英 | Red Hat製品(RHEL/CentOS Stream/Rocky/AlmaLinux系)の影響評価とパッチ状況。 | 開く |
| Linux | Ubuntu Security | 英 | Ubuntu の影響評価。各Ubuntuバージョン(22.04/24.04等)でのパッチ提供状況が一目で分かる。 | 開く |
| Linux | Debian Security Tracker | 英 | Debian の影響評価。stable/testing/sid別のパッチ状況。Debian派生ディスト利用者向け。 | 開く |
| Linux | SUSE CVE | 英 | SUSE Linux Enterprise / openSUSE の影響評価とパッチ状況。 | 開く |
| 悪用 | Exploit Database | 英 | 公開エクスプロイトのアーカイブ。検出ツールやペネトレーションテストでの参照用。 | 開く |
| 悪用 | Packet Storm Security | 英 | セキュリティアドバイザリ・エクスプロイトの集約サイト。古めの情報も含む。 | 開く |
| 悪用 | GitHub PoC 検索 | 英 | GitHubコード検索でCVE IDを直接検索。野良PoCの早期発見に。 | 開く |
| 悪用 | X(Twitter)検索 | 日英 | 直近の議論やニュースを観測。In-the-wild悪用の早期検知に有用。 | 開く |
| スキャナ | Snyk Vulnerability DB | 英 | パッケージ別の脆弱性詳細と修正バージョン。OSS依存ライブラリ追跡に有用。 | 開く |
| スキャナ | Tenable(Nessus) | 英 | Nessusスキャナでの検出プラグイン情報。検出ロジックの参考に。 | 開く |
| スキャナ | Rapid7(Metasploit/Nexpose) | 英 | Metasploit悪用モジュール、Nexposeでの検出情報。 | 開く |
掲載しているのは無料でアクセスできる情報源のみです。CVEによっては掲載がないサイトもあります(特にJVN iPediaは日本国内で報告された脆弱性のみ掲載)。
STEP 2: 急ぎ対応すべきか判断する
結論: 中
判断根拠
- CVSSスコア未公開で正確な数字は不明だが、ネットワークでOrigin検証が抜けているため限定的な攻撃リスク
- EPSSスコア未提供で悪用予測データなし
- ランサムウェア悪用の報告は現時点で不明
- 公開PoCや武器化例は確認されていない
- 攻撃には意図的な接続試行が必要だが、認証や制限が無効化されているためリスクは残る
誰が動くべきか
- LLM Gateway運用チーム(LiteLLMやOpenRouterなどのWebSocket経由APIを使う場合)
- Agentフレームワーク開発者(LangChainやAutoGenでMCP SDKを使用している場合)
- AI駆動開発のバイブコーダー開発者(Cursor、Cline、CopilotなどのIDE拡張連携時)
- MLインフラチーム(vLLMやTritonなどのモデルホスティング環境に関わる場合)
STEP 3: 自分の環境が対象か確認する
影響を受けるバージョン
| 製品 | 脆弱なバージョン範囲 | 修正版 |
|---|---|---|
| MCP Python SDK (PyPIパッケージ名:mcp) | 1.28.1 未満のバージョン全般 | 1.28.1 以上 |
バージョン確認コマンド
Python (pip)
pip show mcp
出力例:
Name: mcp
Version: 1.27.0
Summary: Model Context Protocol Python SDK
...
判定: バージョンが 1.28.0 以下なら脆弱。1.28.1 以上なら安全。
Python (pip list + grep)
pip list | grep mcp
出力例:
mcp 1.27.0
判定: 1.28.1 未満は脆弱。
設定確認
この問題はSDKのWebSocketサーバーがHost/Origin検証を実施しないこと自体に起因します。したがって設定依存はなく、バージョンが対象範囲なら脆弱です。設定変更で緩和可能なオプションは公開されていません。
Nucleiテンプレートでの検出
現時点でCVE-2026-59950を検出する公開Nucleiテンプレートはありません。手動でバージョン確認が実務的です。
STEP 4: 修正を適用する
パッチ適用
Python (pipによるアップグレード)
pip install --upgrade mcp
出力例:
Collecting mcp
Downloading mcp-1.28.1-py3-none-any.whl (xx kB)
Installing collected packages: mcp
Successfully installed mcp-1.28.1
判定: バージョンが 1.28.1 以上なら問題解消。
注意: パッチ適用前に必ずバックアップを取得し、ステージング環境で動作検証を行ってください。ダウンタイム計画も適切に立てましょう。
パッチ即時適用ができない場合の暫定対応
現時点で公式に推奨される暫定対策はありません。管理者は公開されているSDKのWebSocket Transport機能を利用しないか、またはファイアウォールで不要ポート・Origin以外からのアクセスを遮断してください。
STEP 5: 修正されたことを確認する
STEP 3で実行したバージョン確認コマンドを再度実行します。
期待される出力
Python (pip)
pip show mcp
出力例:
Name: mcp
Version: 1.28.1
Summary: Model Context Protocol Python SDK
...
判定: バージョンが 1.28.1 以上ならOK。
追加で確認すべきこと
- ログを確認し、不審なWebSocket接続やOriginヘッダーのない接続が記録されていないか確認してください。
- アップデート後もNucleiテンプレートが公開された場合は再実行し、検出がないことを確認して下さい。
補足: 悪用観測状況
現時点でCVE-2026-59950に関して、ランサムウェア悪用の報告はなく、公開PoCコードや攻撃ツールも確認されていません。GitHub Advisory Databaseにも該当エントリがありません。ネットワークアクセス経由の攻撃は可能ですが、悪用が広まっている証拠はありません。
補足: CVSSメトリクス詳細
- AV (Attack Vector): 未公開。対象はネットワーク経由(WebSocket)。これは外部から直接攻撃可能という意味。
- AC (Attack Complexity): 未公開。Origin検証が欠落しているため、攻撃は比較的簡単と推定。
- PR (Privileges Required): 未公開。通常、特別な権限なしに攻撃可能。
- UI (User Interaction): 未公開。特にユーザー操作不要と推定。
- S (Scope): 未公開。SDKレベルの脆弱性のため、影響範囲は同一プロセス内と考えられる。
- C (Confidentiality): 未公開。攻撃者による情報漏洩の可能性あり。
- I (Integrity): 未公開。データ改ざんの可能性あり。
- A (Availability): 未公開。DoSや接続妨害の可能性あり。
よくある質問(FAQ)
Q. このCVEに対応するために最低限すべきことは何ですか?
A. STEP 3~5を実施してください。特にバージョンが 1.28.1 以上か確認し、古い場合はアップグレードを行います。
Q. パッチが適用できない場合、どうすればよいですか?
A. 公式の暫定対応はありませんが、WebSocketサービスのアクセス制御を強化し、不要な接続元を制限してください。
Q. 既に攻撃を受けているか確認する方法はありますか?
A. ログを確認し、Originヘッダーがない異常なWebSocket接続や、不審なAPIアクセスがないか調査してください。
Q. なぜEPSSスコアが重要なのですか?
A. CVSSは脆弱性の深刻度を示しますが、EPSSは実際に悪用される確率を示します。この2つを併せて見ると対応優先度が正確になります。
Q. このCVEと類似の脆弱性は他にもありますか?
A. CWE-346(認証回避)やCWE-1385(不十分なヘッダー検証)に分類される同種の脆弱性が他製品でも報告されています。WebSocketサーバーの認証漏れは広く注意が必要です。
参考文献
- NVD – CVE-2026-59950
- GitHub – 修正コミット
- GitHub – Pull Request 情報
- GitHub – バージョン1.28.1リリース
- GitHub Advisory Database
関連トピック・タグから探す
本記事に関連するキーワードから、他のAIセキュリティ記事を探せます。
2026-07-16 追記
本記事の公開後、以下の重要な変化が確認されました(公開からの経過: 0日)。
| 項目 | 公開時点 | 2026-07-16時点 | 変化の意味 |
|---|---|---|---|
| CVSSスコア変化 | 9 (Critical) | 7.6 (HIGH) | NVD再評価でスコアが下方修正 |
| タイトルプレフィックス未付与 | (プレフィックスなし) | 【高】 | 公開時はタイトルに危険度プレフィックスが付いていない。最新状況では付与が妥当(記事生成時の凡ミス補正) |
CVSSスコア変化
公開時点では、この脆弱性のCVSSスコアは「9 (Critical)」と評価されていましたが、NVDによる再評価の結果、現在は「7.6 (HIGH)」に下方修正されました。これは、当初考えられていたほどの深刻度ではないと判定されたことを意味します。運用上は「Critical」に比べ緊急度が一段落ちますが、それでも十分に高いリスクに該当するため、引き続き注意が必要です。すでに対応計画済みの場合でも、実際のリスク再評価や優先度の見直しが推奨されます。
タイトルプレフィックス未付与
記事公開時点では、タイトルに危険度を示す「【高】」プレフィックスが付いていませんでしたが、最新情報ではCVSSスコアが「7.6 (HIGH)」となり、Highリスク帯に該当するため、プレフィックス付与が妥当となります。本来であれば記事生成段階で付記されるべきものでした。運用者は記事タイトルから直感的に危険度判断がしやすくなりますので、今後はこの表記に従い対応優先度を検討してください。
