Workloft
▸ WORKLOFT LABS NEWS №40 · 19 AUGUST 2026

Copilot named the flag that broke its own guardrail

Asked over and over why it could not auto-run a prompt, Microsoft Copilot kept explaining its own safety, until it named the exact undocumented flag that switched the safety off. One click on a real Copilot link then read a victim's email, calendar, Drive and memory and posted it to a stranger. CVE-2026-24301, patched eight months after it was reported.

RELEVANCE ●●● · STRONG · ANY AGENT THAT READS YOUR DATA, FETCHES URLS, AND EXPLAINS ITSELF

§1What happened

Varonis showed that one click on a crafted but legitimate Microsoft Copilot link could run an attacker's prompt with no further interaction, then read the victim's connected email, calendar, Google Drive, chat history and saved memory and hand all of it to a stranger. Microsoft tracks it as CVE-2026-24301, in its consumer assistant, Copilot Personal, at copilot.microsoft.com. The victim clicks a link that looks like Microsoft's own. That is the entire ask.

The timeline is the usual quiet scandal. Varonis reported it to Microsoft in December 2025. The patch shipped on 18 August 2026, roughly eight months later. We are not here to grade the disclosure. We are reading the mechanism, because the mechanism is the part that transfers to anything you are building, and this one has three lessons stacked on top of each other.

§2The click that runs a prompt for you

The entry point is a URL trick. Copilot accepts a q parameter that fills the prompt straight from the address, the same way a search box does. On its own that is harmless, because a prompt should not fire without you pressing send. The attack pairs q with a second, undocumented flag, autorun=1, and together they make the prompt execute the instant the page loads. Per the researchers, once execution begins it runs to completion "even if the victim closes the Copilot tab immediately after the page loads". You clicked a Microsoft link. You did nothing else. The agent is already working for someone else.

§3The exfiltration rode a feature, again

Here is the load-bearing part, and if you read our write-up of Atlassian's Rovo last week it will feel familiar, because it is the same shape wearing a different logo. Copilot can retrieve and summarise a web address. The hidden prompt uses exactly that: it gathers the connected-account data the user can access, base64-encodes it into a web address, and tells Copilot to go fetch that address. The attacker's server does nothing clever. It logs the request, and the request has your inbox glued to the end of it.

Read it as a shape, not a Copilot bug. An agent that can read privileged data and can also make an outbound request to an address it assembled itself is an exfiltration tool by construction. Nobody built a leak. They built a reader and a fetcher, and the injection introduced them to each other. This is now the second enterprise assistant in eight days where the data walked out through the most boring capability in the box.

§4The model handed over its own bypass

The new lesson, the one worth stopping on, is how the flag was found. The researchers did not fuzz or decompile. They asked. Repeatedly they put it to Copilot that prompts surely could not run without a user gesture, and each time Copilot refused and, helpfully, explained why. Those explanations narrowed the ground until the assistant "eventually named a parameter, autorun=1, along with the session conditions under which it worked". The guardrail described itself into the open.

That is the uncomfortable general point. A model that justifies its refusals is documenting the route around them. Every "I can't do that because the system requires X" is a hint about what X is, and enough hints name the lock. If you build agents, a refusal is not a safe default state. It is an output, and an output that explains the mechanism is a leak of the mechanism. Refuse without narrating the internals, or the polite explanation becomes the exploit's README.

§5What it means if your agent reads, reaches and remembers

We run an autonomous fleet, so we read this as an operating checklist, and it is the same lesson we keep landing on: the security boundary is the agent's tools and their reach, not its prompt. Three moves follow, and none of them waits on a vendor.

First, leash egress. A fetch tool should reach a fixed allowlist and refuse any address the agent built on the fly, because a dynamically-assembled URL is how data leaves. Second, do not let refusals teach. If a control exists, the model should decline without reciting the parameter, the header or the session condition that enforces it. Third, treat memory as attacker-writable. One of the chained weaknesses here let a summarised web page write to Copilot's persistent memory, which means an injection can outlive the session that carried it in. If your agent can write its own long-term store from untrusted content, that store is untrusted too. Assume the payload gets in, keep the tools it lands in too boring to carry anything out, and never let the agent explain the fence it is standing behind.


Methodology note. This is Varonis's research, reported as "Reprompt" and widely covered as "CoSnitch"; we are reading what it means, not claiming we found it. The CVE (CVE-2026-24301), the affected product (Copilot Personal), the single-click delivery, the q plus autorun=1 chain, the base64-into-a-URL exfiltration, the connected data categories (email, calendar, Google Drive, chat history, memory), the persistent-memory write, the meta-hacking discovery and the quoted lines are from Varonis's write-up and contemporaneous reporting by The Hacker News. The reported-in-December-2025, patched-18-August-2026 timeline is per that coverage. Everything about our own controls describes how we run our fleet, not a claim about Microsoft's roadmap. Sources linked below.