何が起きたか
mac-shell-mcp 2.0.0 より前のバージョンには、execute_command に OS コマンドインジェクションがあります:コマンドホワイトリストはベアコマンドのみを検査し、引数はシェルに渡されます。攻撃者(直接、またはエージェントを誘導する悪意のあるプロンプト)は、pwd のような安全なコマンドを ';' セパレータ付きで呼び出し、承認ステップなしでサーバーユーザーとして禁止されたコマンドを実行できます。
なぜ重要か
シェル実行 MCP サーバーは最も危険なエージェントツール表面です — モデルを OS に直接橋渡しします。ここでのホワイトリストバイパスは、エージェントが読み取るプロジェクトファイル、ウェブページ、または電子メール内のプロンプトインジェクションが、開発者の macOS マシンでの任意のコマンド実行に変換されることを意味します。
攻撃経路
MCP クライアントは許可リストされたコマンド(例:pwd)をシェルメタキャラクター(';')を含む引数で呼び出します。そのため、コマンド名のホワイトリストチェックは、注入された後続コマンドが承認なしでサーバーユーザーとして実行されるのを防ぎません。
影響を受けるシステム
mac-shell-mcp (cfdude) < 2.0.0(execute_command 引数)
緩和策
mac-shell-mcp 2.0.0 にアップグレードしてください(コミット 932ce733cde07bb30b1f186303e6692dbb5d087a; issue #45)。コマンド引数がシェルなしで実行されるか、ホワイトリストに対して検証されることを確認してください。