In short. We’d let a source fill the fields and branches the trusted task names, and never add a step, a destination or a permission. Defense scores must count false blocks beside stopped attacks. Our unrun test would sink this if plain source marking does as well for less, or an adaptive attacker slips a forbidden step through.
What this is. A report from research papers, one protocol specification, one code README and one vendor post. It separates three roles a sentence can play.
Contents
Agents should quote a hostile line, not obey it
An agent should be able to quote a hostile instruction without obeying it. We call the failure promotion, when a sentence that should have stayed evidence is treated as an instruction with authority. Our line sits inside the trusted task, which sets a template for the actions it permits. Source content may fill its checked data slots or pick a branch it already allows, but may never invent a new action, recipient, privilege or branch.
In early 2023, Kai Greshake and colleagues hid instructions in HTML comments on local test pages, so no public site carried the injection. Bing Chat, running on GPT-4 in Microsoft Edge’s sidebar, read the page the user had open. One hidden instruction told it to persuade the user to reveal their real name, a goal it could pursue for the rest of the conversation [1].
Greshake’s team called this indirect prompt injection. The attacker needs no direct line to the model, only a place in the data it’s likely to read [1]. Those comments carried nothing a user needed, so refusing them would have cost nothing.
The harder case is a vendor report, the hypothetical we follow from here, which an assistant reads to draft a response for a reviewer. One line tells the model to ignore the task, fetch another file or email an archive elsewhere. The reviewer may need that line quoted, and the report’s date may belong in the case note. A defense that refuses the whole report loses the date, and one that obeys the line sends the archive.
To a model, an order and a quotation look alike
Both arrive as text. A marker such as UNTRUSTED gives the model a hint, but it doesn’t turn the prompt into a programming language, where a parser strictly enforces what each piece may be.
What matters is how far a string reaches. It may touch content only, or reach control: the order of calls, the targets, the parameters or the privileges. Quoting the report’s hostile line touches content, and emailing the archive where it says touches control.
Zverev and colleagues formally defined instruction-data separation for single-turn models, built a measure for it and released the SEP dataset. The models they tested fell short of high separation, and the standard fixes, rewording the prompt or fine-tuning, either barely helped or cost utility. The exception was GPT-3.5 and GPT-4, which separated well after prompt engineering. The authors caution that GPT-4 may have had an unfair advantage, since the same model helped create the dataset [2].
BIPIA’s authors, who built a benchmark for indirect prompt injection, found the models they evaluated universally vulnerable. They suspect two root causes, the first that models can’t tell information to read from instructions to act on. Boundary markers and explicit reminders helped, but they conclude that such black-box defenses can’t on their own make the models resist indirect injection [3]. Both papers stop at what the model writes, before any tool call turns a misread sentence into an effect.
| Role of the text | What it may influence | What needs an extra control |
|---|---|---|
| Evidence from a document or tool result | A summary, extraction or cited answer | Any extra step or unauthorized change to plan, tool, recipient or permission; approved slots still need type, provenance and destination checks |
| Trusted task specification | The permitted goal and the action’s shape | Whether its assumptions still hold for the domain |
| Saved working note | A later agent’s context, if explicitly let in | Its source label, integrity, expiry and power to change control flow |
Evidence may shape what the agent writes, and reach an action only through a checked slot or a branch the task allows.
Untrusted text can lose its source label at every handoff
Untrusted text moves, and each step can strip the label that marked it untrusted. That’s one way promotion happens. Retrieval is only the first step:
- a search result can be inserted into a prompt;
- a tool can return prose that changes the next call;
- a tool description can steer which tool gets selected;
- an agent can write a note that becomes context later.
So the design question is whether provenance survives each step. Labeling the report when it arrives doesn’t help if its summary is later pasted into a trusted planning prompt. Memory adds delay, since the hostile line could wait in a neutral-looking saved note until it shapes a later plan.
The Model Context Protocol (MCP), an open standard linking AI apps to tools, leaves builders to decide which sources to trust. Its core specification, dated 2026-07-28, describes resources as context and data and tools as functions for a model to execute, and gives three warnings [9].
- Tools amount to arbitrary code execution and need careful handling.
- Annotations and other descriptions of what a tool does should count as untrusted unless a trusted server supplied them.
- MCP itself can’t enforce its user-consent and tool-safety principles at the protocol level.
Labels bring failures of their own. They can be wrong, maliciously issued, stale or too coarse for the decision. Even a correct label vouches only for where a sentence came from, never for whether it’s true.
Training can help a model resist planted orders but can’t prove provenance
Wallace and colleagues built an instruction hierarchy, which ranks system messages first, user messages next and third-party content such as tool outputs last. They fine-tuned GPT-3.5 Turbo to ignore lower-ranked instructions that conflict with higher-ranked ones. In the authors’ GPT-3.5 setting, the trained model resisted their evaluated attacks better, even attack types left out of training. They also report some over-refusal regressions, with the model sometimes ignoring or refusing harmless requests [4].
That result doesn’t make other treatments equivalent. An API role is a field in an interface, and a provider’s policy is run-time behavior. A provenance marker or a system prompt announcing a hierarchy is just more prompt text. Hierarchy training changes the model’s weights, so marking sources in the prompt of a model trained some other way tests presentation alone.
Better model behavior can still cut harmful proposals, and clear source labels can limit which plans get accepted. An effect monitor, a check on each real action, can reject a call the task doesn’t allow, such as emailing the archive elsewhere. But neither training nor labels authenticate where a message came from, and a monitor guards only the actions routed through it. So the separation that matters most has to sit outside the model, where effects happen.
CaMeL moves the separation outside the model, at a cost
CaMeL, a research defense, plans the task from the user’s trusted query alone, working out which steps will run and where each piece of data may go. It then applies capabilities at tool calls, and under CaMeL’s design, untrusted data the agent retrieves can’t change the protected program flow [6]. The report’s hostile line could be quoted but couldn’t add a step.
That safety can cost utility. In the paper’s June 2025 revision, with its stated security property, CaMeL solved 77% of the attack-free tasks on AgentDojo, a benchmark of agent tasks and planted attacks. The same system with no defense solved 84% [6].
CaMeL’s main threat model trusts the user’s prompt and assumes uncompromised memory. It sets some attacks aside, among them text-to-text manipulation of the answer with no forbidden data flow, such as a slanted summary. The authors find CaMeL vulnerable to side channels and report “data requires action” failures, where a task can’t be done without letting data choose the next step [6]. Its code release warns that the research interpreter likely contains bugs and might not be fully secure [11].
Wu, Cecchetti and Xiao offer a second, system-level design that labels information by trust, builds a structured plan and runs a security monitor. Its formal model assumes trusted facilities, secure communication channels between them, and the inputs and labels it specifies. Its batch security test uses a benchmark whose tool outputs are simulated, not real [10].
OpenAI says, in a March 2026 engineering post, that the most effective injections seen in practice increasingly resemble social engineering more than simple prompt overrides. Its answer is to design systems so manipulation’s impact stays limited even when some attacks succeed [12].
We’d expect that to be the hardest kind of promotion to catch. A sharper version of the report’s hostile line would skip “ignore previous instructions” and present an unauthorized step as necessary to finish the task.
A score may not hold against a smarter attacker or on another model
A benchmark score tells you how a defense did on one test, against one set of attacks. A score for promotion should count separately whether an untrusted source, such as the report, added a forbidden step or swapped an argument, say a recipient. A third failure needs its own count: a simulated effect, a harmful action in the test world. A run that finishes the task can still contain all three.
AgentDojo has 97 tasks and 629 security test cases, and checks tool outcomes against the state of its simulated world. Its authors stress that strong models fail many ordinary tasks with no attack [5]. State checks are stronger evidence than an output string, though the result still depends on the benchmark’s tasks, attacks, models and tools.
Bhagwatkar and colleagues’ preprint on an agent firewall, revised on 23 March 2026, calls its results “perfect security with high utility” across four public benchmarks. It also argues that those benchmarks are too weak [7].
Their own tables tell a messier story. On ASB, the Sanitizer, which filters tool output, still let some attacks through. InjecAgent has no utility metric, so it can’t show ordinary tasks still got done. When the authors attacked with the defense in view, in a Stage 3 cascade on AgentDojo’s Slack tasks, some attacks got past the Sanitizer, a setup-specific result [7].
Hofer and colleagues found a black-box optimizer substantially better than a white-box gradient method, across 80 task pairs in four AgentDojo domains. Injections tuned across tasks still worked on a held-out domain against Qwen3-4B, but not on that domain against GPT-5. The gradient method’s strings, tuned on Qwen3-4B, showed very low measured transfer to GPT-5 in the tested set-ups, which used one source model [8]. So an attack’s apparent strength depends on who built it, and against which model.
Three results from our unrun test would sink the checked route
We can’t yet say how often promotion happens in deployed systems. Every result cited here is tied to its own models, tasks and date, and none estimates that rate. Nor do we know whether the line holds at an acceptable cost.
We’ve designed a test to find out. It applies established information-flow controls, offers no new defense or proof, and claims no advantage over CaMeL or Wu, Cecchetti and Xiao’s design. What it adds is a way to say where a source’s influence should stop. It runs ordinary and hostile sources through four paths:
- a document;
- a tool result;
- a tool description;
- a saved note.
Each path runs under three set-ups:
- plain serialization, the text as it is;
- source-marked serialization, each piece tagged with its source;
- a checked route, letting a source’s values into approved slots only.
Any of three results would sink the case for the checked route. Source marking alone might do as well at lower cost. The checked route might win only by refusing data the task needs, or an adaptive attacker might get a forbidden step through. The full design is in What would prove us wrong?
Scope and limits
- What we did
- We read the cited papers, the MCP core specification, CaMeL’s README and OpenAI’s design post. We separated three roles a sentence can play, as evidence, as approved data and as authority, and traced how text moves between them through documents, tool results, tool descriptions and saved notes.
- What we didn’t do
- We ran no attack, benchmark or model, and reproduced none of the cited results. The comparison of plain serialization, source-marked serialization and a checked route across four paths is designed, not run. We audited no code, so CaMeL’s README warning is its authors’ statement, not our finding.
- What this can’t tell you
- How often promotion happens in deployed systems. No cited result estimates it, and Greshake’s demonstrations show the path exists without measuring how often it’s used. Nor can it say whether a formally described control is implemented correctly, since a paper’s property doesn’t establish that.
- Confidence
- High that the attack path exists; Greshake showed it, Zverev’s models fell short of high separation and BIPIA’s were universally vulnerable. Moderate that enforcement belongs outside the model; CaMeL’s 77% against 84% is one system’s attack-free utility on one benchmark. Our line inside the task is provisional and untested.
- What would change our view
- Any of three results from the designed comparison would sink the case for the checked route. Source marking alone does as well at lower cost. The checked route wins only by refusing data the task needs. Or an adaptive attacker gets a forbidden step through.
- Corrections
- We log every correction, with its date, on How we work. Send one through a research enquiry.
The open question
Can source-attributed text and task-required fields survive documents, tool results, descriptions and saved notes, so that checked data slots and approved branches still work without admitting unauthorized changes to the plan or its arguments?
We separate three roles a sentence can play, as evidence, as approved data and as authority, and trace how text moves between them through documents, tool results, tool descriptions and saved notes. A comparison of baseline serialization, source-marked serialization and a checked evidence-and-data route is designed but unrun; its protocol sits with our other proposed studies.
References
A selected review of published sources, with Lugano’s analysis and proposed work identified in the text. Source dates and conditions matter; historical results are not current-model rankings.
- 1
Not What You’ve Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection (arXiv preprint)
Primary arXiv preprint demonstrating indirect prompt injection through strategically placed retrieved data and describing risks for LLM-integrated application behavior.
Scope. The authors’ demonstrations establish attack paths in their evaluated systems; they are not a prevalence estimate, a current-model ranking, or evidence about Lugano.Back to the essay
- 2
Can LLMs Separate Instructions From Data? And What Do We Even Mean By That?
Primary ICLR paper formalizing instruction-data separation, introducing the SEP dataset, and reporting results for its evaluated models and mitigations.
Scope. Its formal measure and empirical study concern the paper’s model-output setting and dataset; they do not evaluate all tool-using agents, source paths, or later model releases.Back to the essay
- 3
Benchmarking and Defending Against Indirect Prompt Injection Attacks on Large Language Models
Primary KDD paper introducing BIPIA and evaluating indirect-injection defenses under its selected models, attacks, and output-quality measures.
Scope. Its benchmark results and mitigation claims are bounded by the paper’s tasks, models, attack construction, and outcome definitions; they do not establish general adaptive robustness.Back to the essay
- 4
The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions (arXiv preprint)
Primary arXiv preprint proposing hierarchy training for privileged instructions and reporting evaluated robustness and over-refusal outcomes in its GPT-3.5 setting.
Scope. The reported behavior depends on the authors’ training data, hierarchy, model, and evaluations; it does not authenticate provenance, mediate external effects, or prove safety for other models.Back to the essay
- 5
AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents
Primary NeurIPS benchmark paper reporting 97 tasks and 629 security test cases in a stateful tool environment with outcomes tied to environment state.
Scope. A dynamic benchmark remains a constructed environment; its task catalog, tools, attacks, models, and state checks do not represent every deployment or adaptive attacker.Back to the essay
- 6
Defeating Prompt Injections by Design (arXiv v2, 24 June 2025)
Versioned primary paper on CaMeL’s capability and dependency tracking, including its 77% versus 84% AgentDojo utility comparison, formal threat model, non-goals, and side-channel discussion.
Scope. Assumes trusted user instructions and uncompromised memory in its main threat model. It does not ensure answer truth, solve data-dependent planning generally, eliminate side channels, or establish implementation correctness.Back to the essay
- 7
Indirect Prompt Injections: Are Firewalls All You Need, or Stronger Benchmarks? (arXiv v2, 23 March 2026)
ArXiv v2 reports tool-interface firewall results and a Slack-only defense-aware Stage 3 cascade. Original ASB Table 2 / Appendix Table 15 reports Sanitizer ASR 16.33±1.70 for GPT-4o-2024-08-06 under Combined attacks; revised ASB Table 18 reports ASR 2.58±1.26. The InjecAgent section has no utility evaluation.
Scope. The headline description of perfect security with high utility is the authors’ characterization, not uniform zero attack success or measured utility across all suites. The Slack Stage 3 result is setup-specific; it does not show every firewall failing in every environment.Back to the essay
- 8
Assessing Automated Prompt Injection Attacks in Agentic Environments
Primary arXiv v1 compares white-box GCG and black-box TAP across 80 AgentDojo task pairs. Its transfer ablation uses Qwen3-4B GCG suffixes on a selected 20-pair subset, with very low measured transfer to GPT-5 and an explicit single-source limitation.
Scope. The reported attack effectiveness and transfer behavior depend on the authors’ models, compute budgets, optimizer designs, agent framework, and threat model; they are not a universal exploitation result.Back to the essay
- 9
Model Context Protocol Core Specification (2026-07-28)
Official versioned specification describing resources, tools, user-consent and tool-safety principles, untrusted tool annotations, and protocol-level limits.
Scope. Protocol guidance describes responsibilities and boundaries; it does not verify a client implementation, prove a source is trustworthy, or establish actual tool behavior.Back to the essay
- 10
System-Level Defense against Indirect Prompt Injection Attacks: An Information Flow Control Perspective (arXiv preprint)
Primary arXiv preprint presenting a labeled, structured-planning and monitor-based information-flow-control design with formal analysis, case studies, and benchmark evaluation.
Scope. Its formal and empirical results depend on its trusted-source model, label configuration, pipeline, tools, and evaluated cases; they do not establish universal source integrity or complete mediation in another system.Back to the essay
- 11
CaMeL research artifact — README
Author-maintained code-release README warning that the interpreter implementation likely contains bugs (for example, uncaught exceptions that crash it) and might not be fully secure.
Scope. Pinned research-artifact snapshot f083b6b396399d3b3c7f2ddaf613a5945eaf32d8, examined 2 November 2026; its warning is not a code audit or empirical defect count.Back to the essay
- 12
Designing AI agents to resist prompt injection
March 2026 vendor engineering account describing social-engineering injections and controls that constrain consequences.
Scope. First-party design account, not independent defense validation or a measured result for the proposed integration.Back to the essay