Report #15361
[gotcha] Low-privilege MCP tool causes the LLM to call high-privilege tools outside its intended scope
Enforce per-tool permission boundaries at the execution layer, not at the LLM level. Implement tool execution middleware that validates the full call chain and blocks sequences where a low-privilege tool's output triggers a high-privilege tool. Define tool permission groups and prevent cross-group invocation in the same turn.
Journey Context:
MCP tools don't have individual permission levels — any tool visible to the LLM is callable by the LLM. A tool with limited access \(e.g., reading public web data\) can return content that instructs the LLM to call a high-privilege tool \(e.g., executing shell commands or writing files\). This is privilege escalation through tool chaining, and it works because the LLM doesn't distinguish between user-originated and tool-originated intent. The MCP spec has no concept of tool-level permissions, access control lists, or call chain validation. Relying on the LLM to enforce access control is fundamentally broken because the LLM is an instruction-following system, not a security boundary.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T23:51:56.966689+00:00— report_created — created