Signature experience

The Confused Deputy

Nine walkable rooms of prompt-injection defense. Categories, surfaces, and controls. No payloads, no jailbreak recipes, no corpus quotes.

The answer — 79 words

Prompt injection is a confused-deputy failure in LLM applications. The model is given tools, private data, or power to act. Text from a user, page, email, document, or tool result is then treated as an instruction. Direct injection is the user as adversary. Indirect injection hides in content a trusted user asked the agent to read. Supply-chain injection sits in RAG or training data. Prompt wording is not a boundary. Reduce privilege, isolate untrusted content, and confirm consequential actions.

Reviewed 2026-09-19 · 9 rooms · Original editorial work by Rogue Prompt · Independent publication

Room 01Threat modelVector DPI

The user is the adversary

What is the difference between a jailbreak and direct prompt injection?

The answer — 66 words

A jailbreak is usually a direct attempt to bypass a model or application policy. Direct prompt injection is the same threat model: the user of your application is the adversary and crafts inputs to ignore your instructions. Anthropic splits this from indirect injection because the defenses differ. Harmlessness screens, input validation, and handling repeat offenders are published controls. This site will not publish working bypass strings.

Warrant

  • Treat the user channel as potentially hostile when the product can call tools or see private data.
  • Refuse, throttle, or ban repeat policy violators as an operational control, not as a moral event.

Injection tries to

  • The user tries to override the system prompt, leak hidden policy, or coerce a privileged tool call.
  • Unintentional direct injection also exists: a user pastes text that happens to contain instructions.

Control

  • Screen user input with a small classifier before the main model.
  • Keep secrets and authorization out of the prompt. Validate tool calls outside the model.

Direct prompt injection is the older, more visible half of the map. Someone using your chatbot, copilot, or agent types (or pastes) text intended to change the product’s job. Jailbreaking is the policy-bypass form of that attack. OWASP treats jailbreaking as a form of prompt injection, not as a separate magical category.

The defensive mistake is to spend the entire budget on witty system-prompt language. Anthropic’s published DPI controls are operational: a harmlessness screen, input validation against known injection patterns, an ethical system prompt as documentation of policy, and consequences for repeat offenders. None of those is a cryptographic boundary. They reduce casual abuse. They do not replace authorization.

Rogue Prompt will not publish working bypass strings, even as “examples.” The useful artifact is the threat model: if the user can make the model call a tool, the user channel is an untrusted input to a privileged deputy. Design the product as if some users will try.

Room 02Threat modelVector IPI

The user did nothing wrong

What is indirect prompt injection?

The answer — 66 words

Indirect prompt injection is the confused-deputy case that matters most for agents. A trusted user asks the model to read a page, email, PDF, screenshot, issue, or tool result. An attacker hid instructions in that content. The user did nothing wrong. Gray Swan required both a harmful action and concealment before counting a success. Users cannot defend against an attack they cannot see. Architecture has to.

Warrant

  • The user asked a normal question. Their intent remains the authority.
  • Retrieved content may be summarized, cited, or quoted as data. It may not set goals.

Injection tries to

  • Hostile instructions ride inside content the application retrieved or processed.
  • The attacker may never speak to the model. They poison a page, an email, a ticket, or a file.

Control

  • Put third-party content only in tool_result blocks, labeled with source.
  • Do not let retrieved text override the user goal or expand tool authority.

Simon Willison’s 2023 framing still holds: this is an attack against applications built on top of models. The application mixed a trusted instruction, untrusted text, and a privileged action in one context window. The model cannot reliably tell which tokens are the job and which tokens are scenery.

OWASP LLM01:2025 says the same in standard language: indirect injections occur when an LLM accepts input from external sources such as websites or files, and that content alters behavior. Severity follows agency. A summarizing chatbot fails small. An email agent with send privileges fails large.

The concealment requirement is what turns IPI into an operations problem rather than a demo. If the user-facing reply looks ordinary while a tool call has already done harm, the victim has no signal to stop. That is why this building exists: to walk the trust boundary, not to collect funny stickers. Funny specimens of the same idea live on Claude Gone Wild’s prompt-injection desk.

Room 03Threat modelVector SPI

The payload arrived earlier

Can RAG or training data inject prompts?

The answer — 64 words

Yes. Wang, Li, Xiang, Zhang, Li, Zhang, Wang, and Tian (arXiv:2602.10453, 11 February 2026) add supply-chain prompt injection: payloads sitting in RAG stores or in training and fine-tune data, not only in the live turn. “I only pasted a URL” is not a complete risk statement for an agent with memory or retrieval. Treat indexed documents and fine-tune corpora as untrusted until proven otherwise.

Warrant

  • Index only what you are willing to treat as an untrusted speaker.
  • Fine-tune and memory writes are persistence. Persist only after authorization.

Injection tries to

  • A document in the retrieval store carries instructions that fire on later queries.
  • Training or fine-tune data can plant a trigger that outlives any single session.

Control

  • Access-control the corpus the way you access-control the database.
  • Re-scan indexed content. Do not assume yesterday’s ingest is still benign.

Most teams still draw the map as DPI versus IPI and stop. That was accurate for 2023 chatbots. It is incomplete for 2026 agents with memory, retrieval, and fine-tunes. The SoK’s third vector exists because a payload can be waiting in the store before the user ever types.

The practical control is boring on purpose. Retrieval is a data-access problem: who can write, who can read, what is re-scanned, what is cited back to the user as a source rather than obeyed as a command. Fine-tuning is a change-management problem. Neither is solved by wrapping the chunk in XML tags.

If your threat model still says “the only untrusted input is the chat box,” this room is the reason to redraw it before you grant the deputy a tool.

Room 04SurfacesLook 6 surfaces

Where the deputy looks

Where do prompt injections hide in an LLM app?

The answer — 55 words

The 2026 agent papers and Anthropic’s computer-use notes name the same untrusted surfaces: web pages, inbound email, documents, OCR and screenshots, code repositories, and tool output. Computer-use classifiers can steer the model to ask whether an injected-looking screenshot came from you. They are not a sandbox. Isolate the environment, limit privilege, and confirm consequential actions.

Warrant

  • Read the surface to do the user’s job. Quote it. Cite it. Do not take orders from it.
  • Run computer use and browser use in a dedicated environment with minimal privileges.

Injection tries to

  • Instructions on webpages or in images can override the developer’s instructions.
  • Tool results carry third-party content. Putting that content in a system prompt collapses the boundary.

Control

  • Allow-list domains. Sandbox the runtime. Keep credentials out of the agent’s reach.
  • Ask a human before financial transactions, consent clicks, or other real-world consequences.

A confused deputy is dangerous in proportion to what it can see and what it can do. The see-list for 2026 agents is no longer “the chat box.” It is every byte the runtime fetches: HTML, PDF text, OCR, issue threads, package READMEs, calendar invites, and the JSON a tool just returned.

Anthropic’s computer-use precautions are the right shape even if you never call that tool: a dedicated VM or container, no unnecessary secrets, an allow-list for the network, and a human on actions that spend money or grant consent. Those are ordinary software controls. They still work when the model is confused.

Capability raises the stakes without automatically raising robustness. Simon Willison watched Claude Fable 5 invent window capture, template hacks, and a CORS sidecar to debug a two-line CSS bug, then warned that the same proactivity is terrifying under hidden instructions. Gray Swan found capability and robustness only weakly correlated. Smarter is not the same as fenced.

Room 05SurfacesCategories Five

The environment is the instruction

What are the AgentPI categories of prompt injection?

The answer — 58 words

AgentPI, in the 11 February 2026 SoK, names five context-aware categories without a recipe: action switching, parameter manipulation, branch divergence, reasoning corruption, and delegation exploitation. Agents are supposed to read the environment. Defenses that ignore context look strong on static tests and fail when the job requires looking. No evaluated defense won trustworthiness, utility, and latency at once.

Warrant

  • The agent may use runtime observations to choose an allowed action.
  • The agent may fill parameters from evidence that is actually in the observation.

Injection tries to

  • Action switching: the tool choice changes. Parameter manipulation: the tool stays, the arguments lie.
  • Branch divergence and reasoning corruption poison the logic. Delegation exploitation over-reads “follow that file.”

Control

  • Execution-level allow-lists catch unauthorized tools. They miss a legal tool with poisoned arguments.
  • Verify that the proposed action is entailed by benign evidence, not only that the tool name is on a list.

Name the five categories. Do not ask this page for a payload that exercises them.

Action switching hijacks control flow: the user asked for one tool, the observation pushes another. Parameter manipulation hijacks data flow: the tool is right, the account number or filename is not. Branch divergence fabricates a fact that sends the agent down the wrong conditional. Reasoning corruption interferes with aggregation, sorting, or comparison so the decision is internally consistent and externally wrong. Delegation exploitation is the trust-chain case: the user said to follow an external file, and the file exceeds the implicit safety boundary of that request.

This is why “just ignore untrusted context” is not a product strategy. The product’s job is to look. A defense that wins a static benchmark by refusing to look will fail the day you hire the model as an agent. The SoK’s headline evaluation result is the one to take into design review: no tested approach was at once trustworthy, useful, and cheap.

Room 06SurfacesVintage Opus 4.5

The user never sees it

Can prompt injection happen without the user noticing?

The answer — 64 words

Yes, and Gray Swan treated that as the success condition. The Indirect Prompt Injection Arena (18 March 2026) required concealment. 464 red teamers, more than 272,000 attempts, 13 models, 8,648 successful attacks, 41 scenarios. Attack success rates from 0.5% on Claude Opus 4.5 to 8.5% on Gemini 2.5 Pro. Those numbers are Opus 4.5 vintage, not Fable 5.1. Capability and robustness were weakly correlated.

Warrant

  • Show the user the actions the agent took, not only the final paragraph.
  • Log tool calls. Alert on plan drift. Do not equate a polite reply with a clean run.

Injection tries to

  • A successful IPI in this arena both did harm and hid it in the user-facing response.
  • Attacks that broke the strongest model transferred downward at high rates. Cheap tricks on weak models did not transfer up.

Control

  • Evaluate concealment, not only refusal. A verbose apology after a silent send is still a miss.
  • Use the open evaluation kit against your own agent under authorization. Do not copy attack templates onto a public page.

The dual objective is the part most vendor dashboards still skip. Measuring whether the model said “no” is not the same as measuring whether a tool ran and the user was told a quiet story. Users cannot protect themselves from an attack they cannot see. That sentence is Gray Swan’s, and it is the design constraint.

We will not describe the “universal attack” template in copy-paste form. The published category is environment-framing: injected text treated as if it were a system-level command. That is a structural weakness in instruction-following, not a bug in one model family. Naming the category is enough for a defender to hunt it in logs. Publishing the template would be a different site.

Transfer is the operational punchline. Attacks that originally broke Claude Opus 4.5 transferred to every other tested model at 44–81%. If an attacker cracks the most robust model, they likely crack the rest. That is why “we use the strong one” is not a complete answer, and why dated vintage matters when someone pastes these numbers onto a later model.

Room 07DefenseASR 1%

One percent is not solved

Is prompt injection in browser agents solved?

The answer — 64 words

No. On 24 November 2025 Anthropic published browser-use hardening for Claude Opus 4.5 plus Chrome classifiers. An internal Best-of-N attacker reached a 1% attack success rate. Anthropic’s own line: not solved; no browser agent is immune. The published category is hidden instructions in content the agent reads, including inbound email. Vintage: Opus 4.5, not Fable 5.1. Classifiers reduce risk. They do not replace isolation.

Warrant

  • Browse on the user’s behalf inside a constrained environment.
  • When a classifier flags page text or a screenshot, stop and ask whether the instruction came from the user.

Injection tries to

  • Every webpage, embedded document, advertisement, and dynamically loaded script is a potential instruction channel.
  • Browser agents can navigate, fill forms, click, and download. Influence over those actions is the impact.

Control

  • Pair model training against simulated injections with classifiers on untrusted content.
  • Do not treat a 1% internal ASR as a product guarantee. Anthropic published it as progress, not as closure.

Browser use concentrates both halves of the confused-deputy problem: a vast untrusted surface and a large action set. Anthropic’s published category on that page is hidden instructions in content the agent processes for a user — they illustrate it with inbound email. We will not reproduce that illustration as a recipe. The category is enough: if the agent can read a message and also send one, the read is a control plane.

The defenses they describe are the right shape for any browser agent, not only Claude for Chrome: train the model to refuse injected instructions in simulated web content, classify untrusted context before it becomes a goal, and keep humans in the loop for high-value tasks. Scaled expert red teaming is listed as a third leg. None of the three is claimed as a seal.

Date the number. November 2025, Opus 4.5, internal attacker. If you are choosing a 2026 model, this is historical evidence of residual risk, not a scoreboard row for Fable 5.1.

Room 08DefensePosture Layered

Treat content as data

How do you prevent prompt injection?

The answer — 66 words

You reduce it. Put untrusted content only in tool_result blocks; say where it came from; state that it must not override the user; JSON-encode third-party strings; grant least privilege; screen tool output; require human confirmation for consequential actions. OWASP LLM01:2025 says the same in application-security language. Wang et al. found no tested defense that is simultaneously trustworthy, useful, and cheap. Prompt wording is not the boundary.

Warrant

  • The user’s original request is the goal. Tool results are evidence.
  • High-impact actions wait for a human who can see the proposed tool call.

Injection tries to

  • Retrieved text tries to become a new system prompt, a new goal, or a new tool grant.
  • A classifier miss is expected. The architecture must still fail small.

Control

  • Deterministic policy on every tool call: schema, allow-list, authorization, sink checks.
  • Log prompts, sources, outputs, and tool calls. Retest after product changes.

How do you prevent prompt injection? You do not, completely. OWASP is blunt: given how generative models work, it is unclear there are fool-proof methods. The list they publish is impact reduction: constrain behavior, validate output, filter, enforce least privilege, require human approval for high-risk actions, segregate external content, and attack your own trust boundaries.

Anthropic’s current hardening notes are the most concrete packaging of that list for a tool-using model. Untrusted content lives in tool_result. The tool description says what the bytes are and where they came from. The system prompt says those bytes must not override the user. JSON encoding makes it harder to break out of a data context. A small model may screen the result before the main model sees it. The application, not the model, decides whether a tool call is allowed.

Two adjacent failure modes belong on the same wall. First, capability without a fence: Willison’s Fable 5 session is the reminder that a model which will invent a CORS sidecar to fix CSS will invent something worse under a hidden instruction. Second, a confused environment: Willison’s 27 August 2026 note on Claude Code Auto Mode, covering Johann Rehberger, is filed as environment interaction rather than classic prompt injection. In some runs a classifier allowed a start and blocked cleanup. We credit those write-ups. We do not reproduce the method. Sandbox, restrict egress, keep secrets off the runtime — that is the published conclusion, and it is enough.

Room 09DefenseLicense AGPL-3.0

Pliny, credited, not copied

Should I use L1B3RT4S to test prompt injection?

The answer — 73 words

As a refusal test against a system you own, yes, through a defensive harness. Pliny the Prompter publishes L1B3RT4S, a public AGPL-3.0 jailbreak and prompt-injection corpus. Promptfoo’s Pliny plugin fetches it to test whether a model refuses and does not merely repeat the prompt. That is a red-team artifact, not a tutorial. Rogue Prompt credits the repo and the plugin. We do not quote the prompts and we do not host a mirror.

Warrant

  • Fetch the corpus only inside an authorized evaluation harness.
  • Score refusal and non-repetition. Do not promote the prompts into production context.

Injection tries to

  • Copying the corpus onto a public page turns a credit into a payload mirror.
  • Teaching the prompts as a how-to is out of scope for this reference, full stop.

Control

  • Link the GitHub repo. Use Promptfoo’s plugin or an equivalent local runner.
  • Keep AGPL-3.0 in mind if you create derived works from the prompts.

Pliny the Prompter (elder-plinius/L1B3RT4S) maintains a large public corpus of jailbreak and prompt-injection templates aimed at flagship models. The existence of that corpus is part of the threat landscape. Reproducing it here would make Rogue Prompt an attack cookbook, which the concept for this site forbids.

The legitimate defensive use is documented by Promptfoo: include a pliny plugin in an authorized red-team config, fetch prompts, and check that your system refuses rather than complies or parroting. Docs were updated 20 September 2026. License remains AGPL-3.0. If you need a refusal test, use the plugin against your own system.

If you came for the cartoon version of a cafe-sign injection, that is a different building: claudegonewild.com/prompt-injection/. This one stays with OWASP language, dated numbers, and controls you can take into a design review.

House rules

What this building will not do

A defensive reference is only citable if the visitor can tell what it refuses. These rules govern every room, and they are why some obvious material is missing.

Categories, not payloads

This building names threat models, surfaces, and controls. It does not publish jailbreak strings, injection templates, L1B3RT4S quotes, Gray Swan copy-paste recipes, or Auto Mode exploit steps.

Primary sources, dated

Every room cites a live paper, vendor note, standard, or repo. Arena scores and the 1% browser figure stay attached to Opus 4.5 and their publication dates so they are not treated as Fable 5.1 results.

Architecture over wording

Delimiters and “ignore malicious instructions” reminders are documentation, not a security boundary. Least privilege, tool_result isolation, deterministic validation, and human confirmation are the load-bearing walls.

Two lanes

Rogue Prompt is the OWASP-style defensive reference. The SFW specimen and cartoon lane lives at Claude Gone Wild’s prompt-injection desk. We link it. We do not copy its comics or joke voice.

Credit

What is theirs, what is ours

Original work

The deputy floor plan, room names, warrant / injection / control strips, and editorial synthesis are original work by Rogue Prompt. Cite them as ours, not as OWASP or Anthropic documents.

Their words, linked

Quotations on the walls are verbatim from the linked source. We do not rewrite a paper into a fake quote, and we do not quote Pliny’s corpus.

Pliny, credited not copied

L1B3RT4S is a public AGPL-3.0 red-team corpus. The legitimate defensive use is Promptfoo’s Pliny plugin, which fetches prompts to test refusal. Linking the repo is credit. Hosting the prompts would be a payload mirror.

Independent

Rogue Prompt is an independent educational publication. It is not affiliated with, reviewed by, or supplied by Anthropic, Gray Swan, OWASP, Promptfoo, or Pliny the Prompter.

Sources, live-checked

Primary sources

Researched from current papers, vendor notes, standards, and public repos on 2026-09-19. Arena scores and the 1% browser figure stay dated so they are not treated as Fable 5.1 results.

OWASP GenAI Security Project · 2025

OWASP LLM01:2025 Prompt Injection

Application-security definition. Direct versus indirect. Impact depends on business context and agency. No fool-proof prevention; constrain behavior, privilege, human approval, segregate external content.

OWASP · current

OWASP LLM Prompt Injection Prevention Cheat Sheet

Hands-on mitigations for remote content, agents, least privilege, monitoring, and guardrail placement.

Anthropic · current docs, reviewed 2026-09-19

Anthropic: Mitigate jailbreaks and prompt injections

DPI versus IPI threat models. Put untrusted content in tool_result. Never let retrieved content override the user. JSON-encode third-party strings. Least privilege. Screen tool output. Human confirmation.

Anthropic · current docs, reviewed 2026-09-19

Anthropic: Computer use tool

Webpages and images can override instructions. Dedicated VM or container, least privilege, domain allow-lists, human confirmation. Screenshot classifiers steer the model to check the user; they are not a sandbox.

Anthropic · current docs, reviewed 2026-09-19

Anthropic: Handle tool calls

Keep untrusted content inside tool_result blocks rather than system prompts or plain user text. Follow with instructions in a later user turn, not inside the result.

Anthropic · 2025-11-24

Anthropic: Mitigating the risk of prompt injections in browser use

Opus 4.5 plus Chrome classifiers. Internal Best-of-N ASR reported at 1%. Published category: hidden instructions in content the agent reads, including inbound email. Vintage: Opus 4.5, not Fable 5.1.

arXiv · 2026-02-11

Wang et al.: The Landscape of Prompt Injection Threats in LLM Agents (arXiv:2602.10453)

SoK. DPI, IPI, and supply-chain PI. Attacks by heuristic versus optimization payloads. Defenses by text, model, and execution stage. AgentPI: action switching, parameter manipulation, branch divergence, reasoning corruption, delegation exploitation.

Gray Swan · 2026-03-18

Gray Swan: Your AI Agent Can Be Compromised. You’d Never Know.

464 red teamers, 272,000+ attempts, 13 models, 8,648 successful attacks, 41 scenarios. ASR 0.5% (Claude Opus 4.5) to 8.5% (Gemini 2.5 Pro). Capability weakly correlated with robustness. Transfer from the strongest model is the threat. Vintage: Opus 4.5.

arXiv · 2026-03-16

Dziemian et al.: How Vulnerable Are AI Agents to Indirect Prompt Injections? (arXiv:2603.15714)

The IPI Arena paper. Dual objective of harm plus concealment across tool-calling, coding, and computer-use settings.

simonwillison.net · 2023-05-02

Simon Willison: Prompt injection explained

Developer framing: prompt injection is an application-security problem, not only a model-behavior problem.

simonwillison.net · 2026-06-11

Simon Willison: Claude Fable is relentlessly proactive

Public Fable 5 session. Cost about $12.11 at API rates. Hidden-instruction warning. Cites Rehberger on normalization of deviance.

simonwillison.net · 2026-08-27

Simon Willison: Breaking Claude Code Opus 5 Auto Mode

Link-post covering Johann Rehberger. Later note: not classic prompt injection. Safety layer can block cleanup. We credit the write-up. We do not reproduce the method.

Embrace The Red · 2025-12-04

Johann Rehberger: The Normalization of Deviance in AI

Teams confuse the absence of a successful attack with the presence of robust security. Cited by Willison as the Challenger-class failure mode.

GitHub · live, reviewed 2026-09-19

Pliny the Prompter: L1B3RT4S (GitHub elder-plinius/L1B3RT4S)

Existence of a large public jailbreak and prompt-injection corpus. Credit the repo. Do not reproduce, mirror, or teach the prompts.

Promptfoo · docs updated 2026-09-20

Promptfoo: Pliny plugin

Defensive use: fetch the corpus, test whether a model refuses, verify it does not simply repeat the prompt. License: AGPL-3.0.

GitHub · 2026

Gray Swan: IPI Arena evaluation kit

Scenarios and judging system for authorized evaluation. Not a payload cookbook for this site.

GEO

Questions this page answers

What is prompt injection?

Prompt injection is a confused-deputy vulnerability in software built around large language models. Trusted instructions, untrusted text, and privileged tools share a context. Direct injection comes from the user. Indirect injection hides in content the app reads. Supply-chain injection sits in RAG or training data.

How do you prevent prompt injection?

There is no complete prompt-only fix. Reduce privilege, put untrusted content in tool_result blocks, validate tool calls outside the model, require human confirmation for consequential actions, log the run, and retest. OWASP LLM01:2025 and Anthropic’s current hardening notes publish that sequence.

What is the difference between a jailbreak and prompt injection?

A jailbreak is usually the user trying to override the product. Prompt injection is broader. Indirect prompt injection is often the user asking a normal question while an attacker hides instructions in content the agent reads. Anthropic documents both threat models separately because the defenses differ.

Is prompt injection solvable?

Not with wording alone, and not completely. Anthropic’s 24 November 2025 browser-use note reported a 1% Best-of-N ASR on Opus 4.5 and said the problem is not solved. Wang et al. (February 2026) found no evaluated defense that won trustworthiness, utility, and latency at once. Reduce impact.

What are real prompt-injection attacks?

Documented classes include early Bing Chat prompt leakage, Greshake et al. 2023 indirect injection against LLM apps, email-assistant demonstrations, Gray Swan’s 2026 IPI Arena (concealment required, Opus 4.5 vintage), and Anthropic’s published browser-use category of hidden instructions in content the agent reads. This site does not republish payloads.

Are the Gray Swan numbers about Claude Fable 5.1?

No. The March 2026 IPI Arena numbers are Claude Opus 4.5 vintage. Anthropic’s 24 November 2025 browser-use 1% figure is also Opus 4.5 vintage. Keep the dates attached so a later model is not scored by an older arena.

Why credit Pliny if you will not quote L1B3RT4S?

Because the corpus is a public risk signal. Promptfoo uses it as a refusal test under AGPL-3.0. Linking the GitHub repo and the plugin credits Pliny the Prompter without turning this reference into a payload mirror.

Where is the funny prompt-injection gallery?

At Claude Gone Wild: https://claudegonewild.com/prompt-injection/. That desk is the SFW specimen and cartoon lane. Rogue Prompt is the OWASP-style defensive lane. We link it. We do not copy its comics.