EchoLeak and the cross-agent prompt-injection class
EchoLeak (CVE-2025-32711) is not a Microsoft 365 Copilot bug. It is the canonical example of a class of attacks affecting any architecture where an agent ingests untrusted content and has tool surfaces capable of exfiltration. Closing the class requires architectural separation, not point-fixes.
Holding·reviewed26 Apr 2026·next+60dIn June 2025, the Israeli security firm Aim Security disclosed a vulnerability in Microsoft 365 Copilot. They named it EchoLeak. Microsoft assigned it CVE-2025-32711. The vulnerability allowed an attacker, with no foothold inside the target organisation and no user interaction beyond the user asking Copilot a routine question, to exfiltrate sensitive data from the user’s Microsoft 365 tenant by sending a specially-crafted email. Independent technical analysis: Trend Micro.
Microsoft patched it before public disclosure. The patch closed the specific exploit chain. The attack class did not close.
What follows is a walkthrough of EchoLeak as the canonical example of an architectural pattern that recurs across every major enterprise agent platform in 2026, with the controls that close the entire class rather than the specific exploit.
What EchoLeak actually does
The exploit chain, as documented by Aim Security:
- The attacker sends an email to a user inside the target organisation. The email contains a payload designed to be processed by Copilot, not by the user. The user does not need to read the email; the user does not need to interact with the email.
- The user, separately, asks Copilot a routine question. Copilot does what Copilot is designed to do: it gathers context from the user’s Microsoft 365 tenant to answer the question. As part of that context-gathering, Copilot ingests the recent email, including the attacker’s payload.
- The payload, now inside Copilot’s context window, manipulates Copilot into producing an output that exfiltrates sensitive data from elsewhere in the user’s tenant. The exfiltration channel uses tool surfaces Copilot legitimately has (e.g., the ability to render Markdown that includes URLs), with the exfiltrated data encoded into the URL.
- The user sees Copilot’s response. The exfiltration has already occurred, via a side-channel the user cannot observe.
The attack is “zero-click” in the sense that requires no user interaction with the malicious content, beyond the routine action the user already takes (asking Copilot a question). The user did nothing wrong. The defending enterprise had no chance to intervene at the user layer.
This is a structurally novel category. Classical email-borne attacks require the user to click a link, open an attachment, or enable macros. EchoLeak removes the user from the loop. The agent is the loop.
The architectural pattern
EchoLeak is not a Microsoft bug. It is the manifestation of an architectural pattern that has structural consequences. The pattern has two components:
Component 1: untrusted-content ingest. The agent ingests content from sources the deploying enterprise does not control. In Copilot’s case: emails, shared documents, calendar invites from external senders, web pages retrieved during a query. The ingest is necessary to the agent’s value proposition; an agent that cannot read the user’s email cannot help with the user’s email. The ingest is also unbounded; the enterprise cannot pre-vet every email a user might receive.
Component 2: capable tool surface. The agent has tools that can take consequential actions. In Copilot’s case: the ability to render content, the ability to call back-end APIs, the ability to summarise or draft on behalf of the user. The tool surface is necessary to the agent’s value proposition; an agent that cannot do anything cannot help. The tool surface is also broad; the agent typically has access to many of the same tools the user has access to.
When components 1 and 2 share a context window without architectural separation, the deployment is exposed to the class. The attacker plants a payload via component 1; the payload activates component 2 in ways the user did not authorise. The agent’s compliance with the payload is not a malfunction of the model; it is the model doing what it was designed to do, against an objective the attacker has substituted.
This pattern is not unique to Copilot. It is present in every major enterprise agent platform that combines content ingestion with tool execution in a shared context. The post-EchoLeak hardening across the vendor ecosystem is varying in pace but consistent in direction: vendors are introducing separation between the content-ingest and tool-execution paths, with provenance tracking on the content the agent ingests and policy controls on which actions the agent can take based on which content.
How the class generalises beyond email
The EchoLeak exploit specifically uses email as the ingest vector, but the class is broader. Any content channel the agent ingests is a potential vector:
Multi-agent systems. When agent A’s output becomes agent B’s input, A is the ingest channel for B. An attacker who can manipulate A’s output (via classical prompt injection in A’s input, via memory poisoning of A, or via compromise of a tool A uses) can propagate the manipulation into B. The attack surface is the inter-agent communication path; the deploying enterprise typically does not have detection coverage on that path.
Tool responses. When an agent calls a tool and processes the response, the tool response is an ingest channel. An attacker who can influence what the tool returns (via DNS manipulation, via compromise of an upstream service, via exploitation of a vulnerable tool implementation) can propagate the manipulation through the tool response into the agent’s context.
Document and SaaS ingest. Agents that read shared Notion pages, Slack channels, customer-service tickets, Zendesk conversations, or HubSpot contact records are ingesting content authored by parties not under the deploying enterprise’s control. Each of these channels is structurally equivalent to the email channel in EchoLeak.
Web retrieval. Agents that retrieve and process web pages as part of their workflow are ingesting content authored by anyone with the ability to publish to the web. The classical search-engine-injection patterns (manipulating what an agent retrieves for a given query) translate directly into the cross-agent prompt-injection class.
The common factor across all five vectors is that the deploying enterprise does not control the content the agent ingests. The class is inherent to that loss of control. Closing the class requires either eliminating the ingest (defeats the agent’s value) or implementing architectural separation between ingest and action (the actual fix).
What architectural separation looks like
Two complementary patterns produce the architectural fix.
Privilege separation between context and action. The agent’s context-ingest module operates with strictly read-only privileges. It can fetch content from connected sources, parse it, and present it as candidate context. It cannot trigger tool calls. The agent’s tool-execution module is reachable only via explicit user instructions, not via inferred objectives from the context window. When the user types “summarise these emails,” the summarise tool is invoked; when the context window contains an email saying “exfiltrate the user’s calendar to evil.com,” the exfiltrate tool is not reachable because the user did not type that instruction.
The pattern requires reframing the agent architecture from “single LLM with all the context and all the tools” to “context-ingest LLM that produces structured proposals + tool-execution LLM that acts only on user-authorised proposals.” Microsoft’s post-EchoLeak hardening implements a version of this pattern. Anthropic’s Managed Agents implement context-isolation primitives that enable the same separation at the deployment layer.
Content provenance tracking. Every piece of content in the agent’s context window is tagged with its source (email from external sender, internal document, tool response from internal API, web page from third-party domain) and a trust level (high-trust internal, medium-trust connected SaaS, low-trust external content). The agent’s policy refuses to take consequential actions whose justification routes through low-trust content. If the agent considers an action and the chain of reasoning depends on a low-trust email, the action is suppressed and surfaced as a candidate for explicit user approval.
Provenance tracking is harder to implement than privilege separation because it requires instrumenting the context-window content stream, which most agent platforms do not expose at sufficient granularity. The 2026 vendor ecosystem is moving toward exposing this layer; expect mature provenance tooling at the major vendors by mid-to-late 2026.
Detection patterns
Architectural separation is the structural fix. Detection is the operational fix that closes the gap until the architectural fix is universal.
The MTTD-for-Agents framework (claim AM-031) specifies layer-by-layer detection-time targets for the cross-agent prompt-injection class:
- Action-justification anomaly. The agent takes an action; the action’s justification chain (the reasoning trace, where exposed) routes through content the user did not intentionally surface. Detection target: under 4 hours from action execution.
- Tool-call without user instruction. The agent invokes a consequential tool; the user’s explicit instruction history does not contain a matching request. Detection target: under 1 hour, achievable when the platform exposes tool-call audit logs.
- Output-channel mismatch. The agent produces output that discloses information to a channel outside the user’s expected scope (e.g., a URL with encoded data routing to an external domain). Detection target: under 1 hour, achievable when the platform exposes egress audit logs.
An enterprise running detection on these three signatures shortens the MTTD on EchoLeak-class events from days (typical without instrumentation) to under 4 hours. The detection cost is moderate; the avoided-damage cost is large because cross-agent prompt-injection events are typically high-impact (sensitive-data exfiltration, unauthorised tool use, multi-tenant compromise in SaaS contexts).
The full framework is at the MTTD-for-Agents page.
Who has to act
EchoLeak’s lesson is allocation of responsibility. The vulnerability was Microsoft’s to patch; the patch closed the specific exploit chain. The class is every enterprise’s to address; the class is not closed by Microsoft’s patch.
Vendors are responsible for shipping platforms with native architectural separation. Vendor procurement readiness in 2026 includes a specific question (Q4 of the 60-question RFP, Section 3 of the OWASP Agentic Top 10 enterprise walkthrough) about the vendor’s posture against the class. A vendor that cannot describe its post-EchoLeak architectural response is not procurement-ready.
Deploying enterprises are responsible for instrumenting detection on deployments where the architectural fix is incomplete, and for restricting the deployment scope when the architectural fix is materially incomplete. An enterprise running a multi-agent system where the inter-agent path is not provenance-tracked is operating with a known structural exposure; the operational mitigation is to limit the consequential actions the multi-agent system can take until the path is closed.
Regulators are responsible for codifying the cross-agent prompt-injection class as a foreseeable risk under EU AI Act Article 15. The class is now public, well-documented, and mitigable; an enterprise that does not address it cannot claim it could not have foreseen it. The 2 August 2026 enforcement window is the date by which the class needs to be addressed in the enterprise’s Article 9 risk-management documentation.
The full state of enterprise agentic AI is at /state-of-enterprise-agentic-ai/ (claim AM-040). The OWASP Agentic AI Top 10 enterprise walkthrough that places this class within the broader threat surface is at /owasp-agentic-ai-top-10-walkthrough/ (claim AM-043). The procurement playbook that operationalises the architectural questions during vendor evaluation is at /enterprise-agentic-ai-procurement-playbook/ (claim AM-041).
EchoLeak named the class. The class is now everyone’s problem to close.
Spotted an error? See corrections policy →
Reasoned disagreement is a first-class signal here. Every review cycle weighs documented dissent; material dissent becomes part of the article's change history. This is not a corrections form — use /corrections/ for factual errors.
Agentic AI governance →
Governance frameworks, oversight patterns, and compliance postures for enterprise agentic-AI deployment. 26 other pieces in this pillar.