Security · AI Systems

The Attacker Moves Second:
Why AI Systems Break So Easily

m2m2-consultingAugust 20268 min read
promptinjectiontoolexfiltrationagent

The unsolved problem at the centre

Every LLM application shares one structural weakness: the model cannot reliably tell the difference between instructions from its developer and instructions hidden in the data it is asked to process. This is prompt injection, and it sits at position one — LLM01 — on the OWASP Top 10 for LLM Applications, the field's reference taxonomy [1].

It is not a bug awaiting a patch. In late 2025 Meta's AI security team stated plainly that "prompt injection remains an unsolved problem, and attempts to block or filter them have not proven reliable enough to depend on" [2]. The most striking evidence came from a joint paper by researchers at OpenAI, Anthropic and Google DeepMind: when they allowed adaptive attackers to move second against twelve recently published defences, attack success rates exceeded 90% for most of them — even though those same defences had originally reported near-zero success. A human red-teaming competition reached 100% [3].

The evidence

>90% attack success against 12 published LLM defences under adaptive attack — defences that had reported near-zero (OpenAI, Anthropic & DeepMind, 2025) [3].

90% with 5 documents: RAG systems could be reliably corrupted by injecting just five malicious texts into a database of millions (PoisonedRAG, USENIX Security 2025) [4].

Prompt injection = LLM01, the top risk on the OWASP Top 10 for LLM Applications 2025 [1].

Indirect injection: the attacker never talks to you

The dangerous version of prompt injection is indirect. The attacker does not type into your chatbot; they plant instructions in content the system will later read — a web page, an email, a document, a code comment, a support ticket. The foundational academic work on this, Greshake et al.'s 2023 paper aptly titled "Not what you've signed up for," demonstrated exactly this against real, LLM-integrated applications [5]. The more tools and data sources an agent can reach, the more surfaces an attacker has to write on.

EchoLeak: the theory became a CVE

For a long time these attacks lived in research papers. In 2025 one became a catalogued vulnerability. EchoLeak (CVE-2025-32711) was a zero-click flaw in Microsoft 365 Copilot: a single crafted email, never opened or clicked, could cause Copilot to leak data from the user's own documents and messages by chaining an indirect prompt injection with an automatic content-rendering bypass [6]. It was, as the discovering researchers put it, the first known zero-click attack on an AI agent — and it required no action from the victim at all.

The exfiltration mechanism is worth understanding because it recurs: an LLM is induced to emit a markdown image link pointing at an attacker's server, with stolen data encoded in the URL. The victim's client dutifully fetches the image — and the data is gone. No malware, no download, just the system's own helpfulness turned against it.

A guardrail vendor advertising 95% effectiveness is describing a failure rate. In security, a control an attacker beats one time in twenty is a control an attacker beats.

Where the real boundary is: agency

What turns an injection from embarrassing to catastrophic is what the compromised system can do. The OWASP list calls this Excessive Agency (LLM06); the security researcher Simon Willison calls the danger the "lethal trifecta" — an agent that simultaneously has access to private data, exposure to untrusted content, and the ability to communicate externally [7]. Any system holding all three can be steered into exfiltrating what it knows. Remove any one leg and the attack loses its exit.

Retrieval-augmented systems inherit their own version. In PoisonedRAG, researchers showed that injecting as few as five malicious documents into a knowledge base of millions was enough to control a system's answer to a targeted question 90% of the time [4]. If anyone can write to your knowledge source — a wiki, a ticketing system, an indexed shared drive — they can, in principle, write to your model's conclusions.

Building as if the attacker moves second

There is no single defence, because there is no reliable filter. What works is architecture that assumes injection will sometimes succeed and limits the damage when it does:

The uncomfortable truth is that LLM applications are, today, easier to attack than to defend. That is not a reason to avoid building them — it is a reason to build them the way we build other systems that face determined adversaries: assuming the first line will be breached, and engineering so that the breach is contained.