genai
SECURITY LAB
IncidentsData exfiltration

Microsoft 365 Copilot Data Theft via ASCII Smuggling

High severityAugust 2024LLM01: Prompt InjectionLLM02: Sensitive Information Disclosure
Status: Reported to MSRC Jan 2024; Microsoft fixed it during 2024 (restricted link/markdown rendering)
On this page

Before EchoLeak, the same idea in miniature: get Copilot to find your secrets, then smuggle them out in invisible characters.

WhenAugust 2024
TargetMicrosoft 365 Copilot
VendorMicrosoft
ResearcherJohann Rehberger (Embrace The Red)
TechniqueIndirect injection + tool use + ASCII-smuggled exfil
DisclosedReported to MSRC Jan 2024; fixed 2024 (no CVE)
Attack flow
  1. 1An injected email or document tells Copilot to search the victim's mailbox and files
  2. 2Retrieved secrets are hidden with invisible “ASCII smuggling” Unicode inside a link
  3. 3The user clicks the innocuous-looking link and the hidden data is sent to the attacker

What happened

In 2024 — before EchoLeak — Johann Rehberger demonstrated an indirect-injection chain against Microsoft 365 Copilot. A malicious email or shared document instructed Copilot to search the victim's mailbox and files for sensitive content (in the demo, even a Slack MFA confirmation code). The retrieved data was staged with “ASCII smuggling” — invisible Unicode tag characters — inside a clickable hyperlink; clicking it sent the hidden data to an attacker-controlled server. Reported to MSRC in January 2024 and fixed during 2024.

How the attack worked

Copilot had legitimate access to the victim's data; the injection redirected that access, then hid the loot in characters the user can't see and shipped it out through a rendered link.

Root cause

Untrusted content drove privileged retrieval, and model output could carry hidden data to external hosts — the same shape EchoLeak would later exploit zero-click.

What a test would have caught

An injection that asks the assistant to gather data and emit a link — plus a check for invisible-Unicode staging in its output — surfaces both the retrieval abuse and the exfil channel.

How to prevent it

  • Isolate untrusted content from privileged retrieval.
  • Strip invisible Unicode from model output.
  • Constrain and allowlist rendered links — Microsoft's fix restricted link/markdown rendering.

Feel it yourselfThe replay lab lets you leak an assistant's context through a rendered link/image — the exfil channel abused here.

FAQ

What is “ASCII smuggling”?

Encoding data using invisible Unicode “tag” characters so it rides inside otherwise-normal-looking text or a link — the victim sees nothing unusual, but the hidden payload carries their data out when the link is clicked.

How did Copilot get the data in the first place?

An injected email or document instructed Copilot to search the victim's own mailbox and files for sensitive content — it had legitimate access, and the injection redirected that access.

Was this exploited in the wild?

It was responsible-disclosure research reported to Microsoft, which remediated it (restricting how links and markdown render) so the demonstrated exploits no longer work.

Replay this attack
Leak an assistant's context through a rendered link/image carrying the data — the channel this attack abused.
Open the live lab
Runs as a live, sandboxed lab. Sign-in required — this replay is a Pro lab. Recreates the attack class, not this exact branded bot.