MCP の動作確認ツール MCP Inspector を更新し、知らないサーバーにつながない(CVSS 9.6 の 2 件)
MCP Inspector は、悪意ある MCP サーバーにつないだだけで手元のコマンドを実行されうる脆弱性 2 件が見つかった。v1 系は 1.0.3、v2 系は 2.12.0 以上へ更新し、信頼できないサーバーの確認には隔離した環境を使う。
何が起きるか
MCP Inspector(npm の @modelcontextprotocol/inspector など)は、MCP サーバーを手元で試すための開発ツールで、ローカルにプロキシーを立ててサーバーを起動・接続する。そのプロキシーには「コマンドを起動する」機能があるため、乗っ取られると開発端末で任意のコマンドが動く。公式告知では次の 2 経路が示された(どちらも CVSS v3.1 で 9.6)。
- OAuth の経路: 認可が終わったあとの戻り先 URL から、Inspector が接続方式と起動コマンドを読み込み、自動再接続で実行してしまう。攻撃者の認可サーバーが自動で応答するので、利用者が OAuth 画面を操作しなくても成立する。
- MCP App の経路: サーバーが提供する MCP App を表示すると、App が Inspector を別タブで開かせ、引き継がれたプロキシーの認証トークンを攻撃者に送らせる。App はプロキシーと同じオリジンで動くため接続元の確認を通ってしまい、盗んだトークンでコマンド起動を要求できる。
影響範囲と対応
| 経路 | 影響するパッケージ | 影響バージョン |
|---|---|---|
| OAuth | inspector, inspector-client | 0.13.0〜1.0.2 |
| MCP App | inspector, inspector-client, inspector-server | 0.20.0〜1.0.2 |
- 使っているバージョンを確かめる(
npxで都度起動している場合は、キャッシュに古い版が残っていないかも見る)。shnpm ls -g @modelcontextprotocol/inspector npm ls @modelcontextprotocol/inspector - v1 系は 1.0.3 以上へ、v2 系は別の脆弱性も直った 2.12.0 以上へ更新する。開発元は v2 への移行を勧めている。
- 出どころの分からない MCP サーバーを試すときは、手元のメイン端末ではなく使い捨ての VM やコンテナで Inspector を動かし、秘密情報を置かない。
- 試し終わったら Inspector を止める。プロキシーを起動したままにしない。
防御の考え方
- 「認可後の戻り先 URL に起動コマンドなどの設定を載せ、それを読んで実行する」設計は、外部から渡された値をそのまま実行するのと同じ。自作ツールでも、OAuth のリダイレクトで受け取る値は認可コードと state だけに絞る。
- 同じオリジンで第三者の UI(ここでは MCP App)を動かすと、オリジンによる接続元確認は意味を失う。第三者のコンテンツは別オリジンかサンドボックス化した iframe に分ける。
注意点
- 一次情報は下の GitHub 勧告。影響バージョンは更新される可能性があるので、対応時は勧告を直接確認する。
- 関連: AI コーディングツールの MCP 認証で「URL を開く」処理がコード実行になる問題に備える(OpenCode 事例)
出典
- @MalwareBibleJP · 2026-10-29
- GHSA-4fc4-wcmh-4g86: github.com
- GHSA-6x67-4w4w-9f3w: github.com
- リリース 2.12.0: github.com