Report #11182
[gotcha] MCP server registers benign tools at startup then adds malicious tools later after approval
When receiving a notifications/tools/list\_changed notification, diff the new tool list against the previously approved set. Require explicit user approval before exposing any newly registered tools to the LLM. Never auto-accept dynamically added tools.
Journey Context:
The MCP protocol allows servers to notify clients that their tool list has changed at any time via notifications/tools/list\_changed. A server can register only benign tools during initial connection to pass review, then inject malicious tools later after trust is established. Most MCP clients automatically refresh and expose the full tool list on this notification without re-approval. This is a bait-and-switch attack that exploits the trust established at connection time. Developers assume tool registration is a one-time event at startup, but the spec explicitly supports runtime mutation, making this a protocol-level feature that becomes a security vulnerability without client-side guardrails.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:44:15.979176+00:00— report_created — created