The most dangerous AI attack may not break the model, the VM or the application. It may convince the agent to use a trusted tool in an unsafe way.
The most dangerous AI attack may not break the model, the VM or the application. It may convince the agent to use a trusted tool in an unsafe way.
That is the security problem around the Model Context Protocol (MCP), and Meta Muse is a useful live case because it supports MCP directly.
Parts 1 and 2 of this series covered the agent's authority and the runtime that contains it. This part moves outward to the tools:
What happens when an agent trusts a tool the attacker controls, manipulates or has compromised?
privsep workers with tightly scoped credentials. A third-party summary of Meta's documentation says custom connector code runs inside the runtime cell, without that extra separation. Confirm that detail against Meta's Help Center before relying on it.The Model Context Protocol is an open standard for connecting AI applications to external tools and data. Instead of a custom integration per application, a developer exposes capabilities through an MCP server and any MCP client can use them.
AI application → model → MCP client → MCP server(s) → databases, repositories, SaaS APIs
That standardization is why MCP is spreading, and why it matters for security: the model becomes connected to more things that can be attacked.
In a normal API integration, the application decides exactly what request is sent. With an agent, the model decides which tool to use, when, and with what arguments, based on everything in its context, including text an attacker may have influenced.
User → agent → model interprets request → selects tool → generates parameters → MCP server → external system
An attacker does not need a malicious tool. Often they only need to influence how the agent uses a legitimate one. search_customer, export_records and send_email can each be legitimate while the sequence is an attack. The tool is trusted. The request may not be.
Meta's own principle is the right one: Muse proposes, only Sentinel can grant permission. Concretely, from Meta's published design:
privsep workers with explicit credential allowlists, specifically because an agent coerced by prompt injection could otherwise rewrite tool code that holds credentials.Custom MCP connectors are where the picture gets harder. They are unreviewed by Meta, user-added in conversation, and, per the third-party summary above, not given the privsep separation built-in connectors get. They still sit behind Sentinel for egress and approvals. That is a reasonable design, and it also makes the custom connector the weakest link by construction, which is the right place for a security team to look first.
MCP servers describe their tools in text that the model reads. If an attacker controls that text, or any part of the tool's schema or output, they can hide instructions there. Invariant Labs documented this as tool poisoning in April 2025: tool descriptions enter the agent's context as trusted content, so instructions hidden in a description can steer the model while remaining invisible to the user. The same research showed "rug pull" variants, where a server changes its tool definitions after the user approved it.
The attack surface moves from the tool's executable code to the information the model uses to understand the tool.
These are real, documented incidents, not hypotheticals. They show the failure modes that any MCP-connected agent, including Muse, inherits.
| Incident | When | What happened | Lesson |
|---|---|---|---|
| Tool poisoning (Invariant Labs) | Apr 2025 | Hidden instructions in MCP tool descriptions steer the model, including a WhatsApp message-history exfiltration demonstration | Tool metadata is untrusted input |
| GitHub MCP prompt injection (Invariant Labs) | May 2025 | A malicious public GitHub issue hijacked an agent into pulling data from private repositories; a broad access token enlarged the damage | Least-privilege tokens; untrusted content plus broad tools equals exfiltration |
| mcp-remote, CVE-2025-6514 | mid 2025 | A malicious server's authorization endpoint led to OS command injection in a popular OAuth proxy (CVSS 9.6) | The MCP client side is attack surface too |
| MCP Inspector, CVE-2025-49596 | mid 2025 | Unauthenticated remote code execution in a developer tool (CVSS 9.4) | Developer tooling around MCP is a target |
| Asana MCP data exposure | Jun 2025 | Cross-tenant data exposure in a vendor's MCP server | Multi-tenant authorization must be enforced server-side |
| postmark-mcp backdoor (Koi Security) | Sep 2025 | A malicious npm package posing as an email MCP server silently BCC'd mail to the attacker; roughly 300 organizations were estimated to have used it | MCP servers are a software supply chain |
Severity scores and counts are as reported by the researchers and CVE records; check each source before quoting a figure.
These are questions to test, not reported flaws. We found no public report of any of them being exploitable.
MCP does not create prompt injection, but it multiplies what a successful injection can do. Part 4 covers the injection itself. The chain looks like this:
Untrusted content → agent reads it → model interprets → trusted MCP tool → enterprise system → data or action
The malicious page never touches the enterprise API. It only has to influence the agent. The API request that follows can be perfectly authenticated and authorized, and still be an incident, because the agent was manipulated into making an authorized request for an unauthorized purpose.
An MCP server should not assume "the AI selected me, so the request is trusted." The safer assumption is that the model may be manipulated, so every consequential request is validated outside the model:
Agent → tool request → policy broker (identity, scope, context) → MCP server → external system
The model requests. A control that does not depend on the model decides.
search without delete, export or billing.search_customer → export_records → upload_file deserves more scrutiny than any one call.For a deeper treatment of tool permissions, see our guide to AI agent tool security and MCP and the OWASP agentic top 10 technical guide.
IDENTITY → who is the agent and what authority does it hold? (Part 1)
RUNTIME → where does it run and what happens if it is breached? (Part 2)
TOOLS → what can it call and what can those tools change? (this part)
CONTEXT → what content can influence its decisions? (Part 4)
ACTION → what real-world consequences can it trigger?
Failures at any layer can chain into the next. An attacker needs one weak link; defenders need each layer to contain the failure of the one before.
Check whether injected content can push your AI agent into unsafe tool calls and data exports before an attacker does.