Home

/

Prompt Injection: Blast Radius

/

How much can actually leak

How much can actually leak

Chapter 10
Part II
3
min read

How much can actually leak

Worth being realistic, because over-claiming here loses engineers.

A DNS channel carries perhaps 50 useful bytes per lookup. A search query might carry a few hundred. A rendered image URL carries as much as the URL length allows, which is thousands. An email carries everything.

So the channels differ by four orders of magnitude, and the response should differ too. An attacker with DNS alone extracting a customer database is doing thousands of lookups over hours, which a budget catches and an alert surfaces. An attacker with one rendered image URL gets a credential in a single turn, with nothing to notice.

Rank the work by bandwidth. Images and mail first. DNS last, and mostly with a budget rather than a block.

Failing closed

try
{
    if (!_budget.TryConsume(payload.Length))
        return EgressResult.Denied("budget-exhausted");

    return await _transport.SendAsync(payload, ct);
}
catch (Exception ex) when (ex is not OperationCanceledException)
{
    _audit.RecordFailure(destination, ex);
    return EgressResult.Denied("egress-policy-unavailable");
}

If the policy cannot be evaluated, nothing goes out. An agent that stops sending mail when its allowlist service is down is an incident someone fixes in an hour. An agent that sends mail anyway is a breach somebody else discovers.

What breaks first

This is the chapter that generates complaints, and they arrive in a predictable order.

Images stop rendering. Product will notice within a day. The answer is server-side proxying, not an exception.

A legitimate integration breaks because its host was not on the list. Correct behaviour, mildly embarrassing, fixed by adding the host. Build the allowlist from your existing traffic before you enforce it, then run in report-only mode for a week and read what it would have blocked. That week will also tell you things about your system you did not know.

Someone asks for a wildcard. *.example.com is usually fine. * is a request to delete this chapter. The middle cases need a real conversation, and the useful question is who else can publish on that host.

What this costs

Less than any other chapter here, which is why it goes first when time is short. A renderer, a policy, a budget and an allowlist is a few days of work and does not require touching the agent loop.

The recurring cost is allowlist maintenance, which is unglamorous and never finished. The one-time cost is a week of people telling you their integration broke.

Set against that: this closes the leg that carried EchoLeak, and it does so without needing to detect anything, classify anything, or be right about intent.

Chapter 11 deals with the case where the agent does not need to send your data anywhere, because it is running code on your machines.

Sources for this chapter

ClaimSourceStatus
Any tool that can make an HTTP request, load an image, or provide a link for a user to click can carry data to an attackerWillison, 16 Jun 2025, https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/PRIMARY
EchoLeak (CVE-2025-32711): zero-click exfiltration from M365 Copilot via crafted email and auto-fetched markdown imagesCarried from book #3 research; see ../book-pii-llm/RESEARCH-SOURCES.mdSECONDARY
Insecure Output Handling as a standing OWASP categoryhttps://genai.owasp.org/llm-top-10/PRIMARY

The three rules, the SafeRenderer, the IsAllowed policy including the refusal of tainted query strings, and the egress budget are the author's designs. The claim that closing this leg stops "a large share" of published exploits is an assessment from the mechanism and the incident record rather than a measured proportion; no one has published that number and this book does not invent one. The recommendation to strip images unconditionally is a strong opinion that some teams will reasonably reject on product grounds. The DNS channel is well established in exfiltration literature generally and has not been demonstrated against an agent by this author.

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.