Report #11230
[gotcha] Individually safe tools achieve unauthorized actions when chained by the LLM through prompt injection
Implement a capability matrix that evaluates combined tool effects, not just individual permissions. Add runtime guards that detect sensitive action sequences \(read-then-send, query-then-delete\) and require explicit user confirmation. Log and review full tool call chains, not just individual invocations. Consider data-flow taint tracking from sensitive sources to external sinks.
Journey Context:
A file-read tool and a web-request tool are each individually reasonable and pass security review. But when chained—read a sensitive file, then POST its contents to an external URL—they achieve data exfiltration that neither tool was designed for alone. The LLM, following injected instructions from a tool description or return value, orchestrates these chains seamlessly. Traditional permission models check individual tool access, missing emergent behaviors from combinations. Each step looks legitimate in isolation: reading a file the user has access to, making an HTTP request to an allowed domain. Only the sequence reveals the attack. This is privilege escalation through composition, and it is the hardest MCP attack to prevent because it exploits the fundamental architecture of tool-use agents rather than any single vulnerability.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:49:16.264338+00:00— report_created — created