Report #69054
[gotcha] I secured tool inputs and outputs but forgot about MCP resources and prompts
Apply the same injection defenses to MCP resources and prompts as you do to tools. Audit resource content for instruction-like payloads. Sanitize prompt template inputs. Treat all three MCP primitives \(tools, resources, prompts\) as equally dangerous LLM-visible surfaces. Implement content inspection for resource reads and prompt expansions.
Journey Context:
The MCP protocol defines three primitives: tools, resources, and prompts. Security attention overwhelmingly focuses on tools, but resources \(which provide dynamic contextual data like file contents or API responses\) and prompts \(which provide template-based interaction patterns\) are also injected into the LLM context and can contain prompt injection payloads. A resource that returns markdown with hidden instructions, or a prompt template that interpolates untrusted content, are equally dangerous but routinely overlooked because they don't feel 'executable.' The LLM makes no distinction between content from a tool, a resource, or a prompt — it all becomes context.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T22:23:26.962613+00:00— report_created — created