Home

/

Prompt Injection: Blast Radius

/

Why this is structural

Why this is structural

Chapter 4
Part I
4
min read

Why this is structural

Step back from the measurements, because the argument does not depend on any of them.

A filter is a classifier over an unbounded input space. The attacker has unlimited attempts, no rate limit worth the name, and can test offline against an approximation of your model. You must be right every time. They must be right once. That asymmetry is not a bug in current products and no amount of training data closes it.

There is a second problem underneath the first. Willison put it in five words: LLMs follow instructions in content. A language model has no mechanism for distinguishing an instruction from its operator from an instruction embedded in a document it was asked to read. Both arrive as tokens. Both are instruction-shaped. The distinction you want is about provenance, and provenance is metadata the model never sees.

You cannot ask a system to enforce a boundary it has no representation of.

Note what the best-performing detector in this chapter actually is. PromptArmor's method is to prompt a language model to spot injections. The strongest published defense against attacks on language models is another language model, and it is exactly the class of system the evasion research defeats. That is not a contradiction and PromptArmor's results stand. It does mean the ceiling on detection is set by the same property that created the vulnerability.

Four years after naming the problem, Willison's assessment is that "we still don't know how to 100% reliably prevent this from happening."

So use them, and do not rely on them

Detection is worth deploying. It raises the cost of casual attacks, it catches the copy-pasted payloads that make up most real traffic, and it produces signal for chapter 17. Run it.

Just do not let it be the thing standing between an injected model and your database. Put it in the same category as a spam filter: useful, constantly worked around, and never the reason you are comfortable.

The rest of this book assumes the filter failed and asks what happens next. Chapter 5 defines what a good answer to that question looks like.

Methodology note

The numbers above come from different evaluations and are not directly comparable. The 480-query table is a single controlled holdout with a 77/23 split of injection to benign traffic, which is far heavier in attacks than production. NotInject measures one specific failure, over-defense on trigger words, and does not name the models it tested, so nothing here attributes near-random benign accuracy to a named product. PromptArmor's sub-1% figures are on AgentDojo with three specific models. The evasion results are adaptive and white-box-informed, which is a different and harder threat model than any of the others.

They are presented together because they answer different questions. A fixed benchmark tells you how a defense handles known attacks. Only the adaptive work tells you how it handles an attacker who has read the manual, and that is the attacker you are building for.

Sources for this chapter

ClaimSourceStatus
PromptArmor: FPR and FNR below 1% on AgentDojo; ASR below 1% after removal; method is prompting an off-the-shelf LLMarXiv 2507.15219, Jul 2025, https://arxiv.org/abs/2507.15219PRIMARY
LlamaFirewall as open-source agent guardrail systemarXiv 2505.03574, https://arxiv.org/pdf/2505.03574PRIMARY
480-query holdout: NeMo 0.00%/16.22%/~1.5s; Prompt Guard 38.48%/3.60%arXiv 2605.06669, https://arxiv.org/html/2605.06669PRIMARY
Trigger word bias; NotInject 339 benign samples; SOTA near random (60%); InjecGuard +30.8%arXiv 2410.22770, https://arxiv.org/abs/2410.22770PRIMARY
Six protection systems incl. Azure Prompt Shield and Meta Prompt Guard; character injection and AML evasion; up to 100% evasion in some instances; black-box attacks improved via offline white-box word importanceHackett, Birch, Trawicki, Suri, Garraghan, arXiv 2504.11168, Apr 2025 (v3 Jul 2025), https://arxiv.org/abs/2504.11168PRIMARY
"LLMs follow instructions in content"; "we still don't know how to 100% reliably prevent this"Willison, 16 Jun 2025, https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/PRIMARY

The asymmetry argument (unbounded input space, unlimited attempts, offline approximation) is the author's framing of why the measured results hold in general, not itself a research finding. The observation that false positives concentrate in content about the system is the author's, drawn from the trigger-word-bias mechanism rather than measured. The spam filter comparison is the author's, as is the reading of delimiters and instruction hierarchies as mitigations rather than boundaries. Figures reported elsewhere for PromptGuard and AgentWatcher were omitted because they could not be traced to a primary source before drafting.

the-three-year-bug
why-the-industry-shipped-anyway
injection-is-not-jailbreaking
why-the-confusion-persists
the-lethal-trifecta
running-the-audit
why-filtering-fails
measured-here-on-a-named-model
why-this-is-structural
what-solved-would-look-like
the-harness
provenance-every-value-knows-where-it-came-from
on-the-reference-agent
quarantine-the-planner-never-reads-the-mail
what-two-models-cost-in-practice
capability-authority-the-agent-cannot-widen
expiry-is-a-feature
the-gate-the-model-proposes-code-disposes
the-policy
failing-closed
egress-closing-the-exfiltration-leg
how-much-can-actually-leak
sandboxing-containing-the-code-the-agent-writes
the-sandbox-held-and-it-did-not-help
poisoned-memory-poisoned-retrieval
cleaning-up-afterwards
the-tool-supply-chain
mcp-and-the-rest
human-in-the-loop-that-isnt-theatre
when-there-is-nobody-there
testing-for-injection
measuring-coverage-not-pass-rate
red-teaming-agents
a-finding-worked-through
when-it-happens-anyway
what-the-logs-cost-you-in-an-incident-you-did-not-have
governance-procurement-and-the-regulator
writing-the-policy
end-to-end
what-it-actually-took
what-stays-broken
why-this-is-probably-structural
the-trifecta-audit-worksheet
action-schema-and-policy-reference
control-mapping
prompt-injection-sources
incidents
appendix-e-what-we-re-ran-ourselves
e4-the-control-that-keeps-e2-and-e3-honest

Download the full PDF for free?

Free download — no account required

Get the PDF
Get the PDF
Related Chapters
Free Download
Get the full PDF
All pages, including all code examples, diagrams, and the appendix reference card.
No spam. Unsubscribe at any time.
Your email won't be shared.
Oops! There's a problem with your request. We're working on fixing it. Please try again later.