本文へ

利用状態: ログイン状態を復元中...

MCP VULNERABILITIES

MCPの脆弱性: 公開事例と接続前の確認

MCPの脆弱性は、許可した範囲を越えてデータや操作へ到達できる不具合などです。接続する前に、対象の実装、配布版、権限と利用経路を一緒に確認します。

資料確認日:

「何ができるか」と「何が破られたか」

ファイルの書き込みやコマンド実行は、MCPサーバーの本来機能である場合があります。公式の信頼モデルも、設定したstdioコマンドの起動自体を脆弱性とはしていません。採用時には、必要な機能、想定外の境界越え、確認できない部分を区別すると、取るべき対応が明確になります。

確認された状態接続前の対応
必要な機能だが権限が広い専用アカウント・必要な作業フォルダ・送信先の制限を、OSや接続先サービスで強制。許可外の操作が拒否されることを確認します。
設定した境界を越える不具合公式advisoryと実際の配布版を照合。影響する経路を止め、修正済みの配布物へ更新して、許可外の到達ができないことを確認します。
実装や検査の証拠が足りない不明な点を残したまま業務データへ接続せず、出所、認証条件、対象バージョンなど、判断に欠ける証拠を集めます。
MCP公式セキュリティ方針と信頼モデル

公式に公表された実装上の事例

以下は特定の実装・配布版についての公表事例です。現在のすべてのMCPサーバーに同じ不具合があるという意味ではありません。

@modelcontextprotocol/server-filesystem

Filesystem: symlinkによる許可範囲外への到達

許可ディレクトリ内のsymlinkを通じて、意図しないファイルへ到達できる問題。文字列上のパスと、OSが解決する実体パスの両方が確認対象です。

GHSA-q66q-fx2p-7w4m · 2025-07-01事例の解説を読む

mcp-server-git (pip)

Git: 参照名がコマンドのオプションになる

git_diffとgit_checkoutへの入力がGitのオプションとして解釈され、ローカルファイルの上書きにつながる問題。公式advisoryの影響版は2025.12.18未満、修正版は2025.12.18です。

GHSA-9xwc-hfwc-8w59 · 2025-12-17事例の解説を読む

自分の環境への影響を確かめる4項目

  1. 1

    同じ配布物か

    似たサーバー名だけで判断せず、package名、配布元、起動コマンド、実際に展開したバージョンを記録します。

  2. 2

    問題の経路へ到達するか

    利用するツール、入力元、実行場所と公開範囲を確認します。接続しているだけの場合と、影響する操作を許可する場合では条件が異なります。

  3. 3

    何に届くか

    実行アカウントが読めるファイル、変更できるデータ、使える認証情報、送信できるネットワーク先を確認します。

  4. 4

    修正と制限が実際に効くか

    更新した配布物を再起動し、無害なテストデータで、必要な操作は通り許可外の操作は拒否されることを記録します。

脆弱性と検査についてのよくある質問

MCPのコマンド実行はすべて脆弱性ですか?

いいえ。設定したstdioサーバーを起動するコマンド実行は、MCPの意図された機能です。必要な権限を越えた実行、入力の取り違え、認証回避など、どの境界が破られたかを確認します。

RESTRICTなら、既知の脆弱性がありますか?

RESTRICTには高リスクの動作や権限も含まれるため、既知の脆弱性があるとは限りません。個別の理由と必要な制御を確認してください。NEED_REVIEWは、危険度ではなく判断に必要な証拠が足りない状態です。

最新版へ更新すれば、導入判断は完了しますか?

影響する不具合が修正されても、意図された強い権限や利用者の設定は残ります。実際の配布物、権限、接続先を確認し、必要な制限が効くことを検証します。