Report #74928
[gotcha] MCP server exposes sensitive resources that the LLM reads without user awareness or explicit consent
Implement explicit user consent for resource access, not just tool calls. Display the full resource listing to users before connecting to a server. Audit server resource templates for sensitive data exposure. Block resource access by default and require per-resource or per-server opt-in.
Journey Context:
MCP servers expose both tools \(actions\) and resources \(data\). While tool calls typically require user approval in client implementations, resource reads often don't — the LLM can include resource contents in its context simply by referencing the resource URI. A server might expose resources like internal database records, configuration files, or environment variables, and the LLM can read and summarize them without any user interaction. Users who approve a server connection for its tools may not realize they're also granting the LLM unrestricted read access to all the server's resources. The MCP spec treats resources as a first-class concept with their own URI scheme and subscription mechanism, but many client implementations don't provide consent granularity for resources comparable to what they provide for tools. The asymmetry is the vulnerability: tools are gated, resources are not, but resources can contain equally sensitive information.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:22:08.361889+00:00— report_created — created