何が起きたか
ContextForgeのMCPツール呼び出し用Pythonコード実行サンドボックスは、実行時構築の動的属性名と公開の生getailtinを介してエスケープでき、サンドボックスが適用することを意図した制限されたサブセットではなく任意のコード実行を許可します。
なぜ重要か
MCP Context ForgeはMCP、A2A、およびREST/gRPC APIの集約AIゲートウェイ/レジストリ/プロキシとして位置付けられています。そのコード実行ツールのサンドボックスエスケープは、オペレーターが安全に制限された「エージェント用にいくつかのPythonを実行」機能と信じているものを、ゲートウェイ自体での認証されていないリモートコード実行に変換します。パブリックPoC既に利用可能です。
攻撃経路
サンドボックスはsafe_builtinsを通じて生getatrを公開し(仲介された属性アクセスをバイパス)、コード検証は文字列危険なダンダーのみをチェックしながらそれらが実行時に構築されることを許可します。execute_code MCPツールが認証されていないHTTP/SSEトランスポート経由で到達可能な場合と組み合わせると、攻撃者は動的にブロックされた名前を再構成し(例:subprocess/Popenに到達するため)、サーバープロセスの権限で任意のOSコマンドを実行するPythonを送信できます。機能的な概念実証が公開されています。
影響を受けるシステム
IBM/mcp-context-forge python_sandbox_server sub-project、1.0.2/1.0.3より前のバージョン
緩和策
mcp-context-forge / python_sandbox_serverをパッチされたリリース(参照されている修正コミットに従って1.0.2以降)にアップグレードしてください。execute_code MCPツール上の認証を必要とし、パッチステータスに関係なくサンドボックスサーバーのネットワーク到達可能性を制限してください。