This continues two earlier pieces: Your Agent Is Trying to Help. That’s What Makes It Dangerous. and “We’ve Solved Prompt Injection.” It stands on its own, but the arc is worth following.
A few months ago I wrote that prompt injection isn’t solved, and that anyone telling you otherwise is either lying or doesn’t understand the problem. I got pushback. Thoughtful pushback — from people who pointed to new research, new frameworks, new architectural patterns. CaMeL from Google DeepMind. MELON from ICML. StruQ. SecAlign. Meta’s Rule of Two. A team of 14 researchers from OpenAI, Anthropic, and DeepMind publishing a joint paper in October 2025.
So let me revisit the claim. Not to walk it back — but to sharpen it. Because what the research actually shows is more interesting than either “it’s solved” or “it’s unsolvable.” The research shows that we have made genuine progress in the wrong places, that the defenses which work on benchmarks break in the wild, and that the adversary has one structural advantage that no amount of clever engineering has managed to neutralize.
The attacker moves second.
The Research Arrived. It Confirmed the Problem.
In October 2025, a team that included Nicholas Carlini, Milad Nasr, Jamie Hayes, Ilia Shumailov, and Florian Tramèr — researchers across OpenAI, Anthropic, and Google DeepMind — published The Attacker Moves Second: Stronger Adaptive Attacks Bypass Defenses Against LLM Jailbreaks and Prompt Injections. It is, without exaggeration, the most important security research in the agentic AI space in two years.
The thesis: current defenses are evaluated against static attack sets or computationally weak optimization methods. They aren’t evaluated against an attacker who can look at the defense and adapt. When you evaluate them properly — using gradient descent, reinforcement learning, search-based optimization, and human red-teaming — 12 published defenses fall, most with attack success rates above 90%. This includes defenses that originally reported near-zero attack success rates in their own evaluations.
Read that again. Published defenses. Peer-reviewed. Near-zero self-reported attack success rates. Above 90% when attacked adaptively.
Fig. 1 — Self-reported near-zero attack success rates collapse to 90%+ under adaptive attacks. CaMeL partially resists because its security is architectural, not model-level.
The reason is structural. A defense is fixed — once deployed, it has a shape. An attacker has unlimited time to study that shape and find the gaps. In chess, moving second is a disadvantage. In adversarial ML, moving second is an enormous advantage: you can see where the defense concentrates and route around it. This applies to BERT-based injection detectors (PromptGuard, Protect AI, PIGuard), to adversarial training approaches (StruQ, MetaSecAlign, Circuit Breakers), to secret-knowledge defenses (DataSentinel, MELON). The only defense that partially escaped is CaMeL — not because it’s unbreakable, but because its guarantees come from architectural separation rather than model robustness.
The Defense Landscape, Honestly Mapped
Detection-based defenses — classifiers trained to recognize injection payloads — are the most widely deployed because they’re the easiest to bolt on. PromptGuard, Protect AI’s detector, Google’s Model Armor. They all follow the same recipe: fine-tune a BERT-based model on mixtures of benign and malicious prompts. They all fail the same way: an attacker who can observe the classifier’s confidence score and iterate on their payload will defeat it above 90% of the time.
The fundamental problem is that detection-based defenses are playing classification against a problem that isn’t classification. Injection payloads don’t have a fixed signature. They’re semantically flexible — the same attack intent can be expressed in essentially unlimited ways. A filter trained on yesterday’s payloads is always behind today’s.
Architectural separation defenses — the Dual LLM pattern, CaMeL — are more principled. CaMeL, published by a DeepMind team in March 2025, is the most rigorous attempt yet. It wraps the LLM in a system layer that extracts control and data flows from trusted user queries, enforces capability-based security policies on tool calls, and ensures untrusted retrieved data can never influence the control flow.
Fig. 2 — Undefended: injected payload and user instruction are indistinguishable. CaMeL separates them structurally — the privileged LLM never sees external content; the quarantined LLM cannot call tools.
On the AgentDojo benchmark, CaMeL achieves provable security on 77% of tasks — compared to 84% with an undefended system. That 7-point delta is the cost of the security guarantee. Real progress. But instructive in its limits: CaMeL assumes the initial user query is benign, can’t protect against text-to-text attacks, and requires hand-coded security policies that lag the agent’s actual capability set.
Behavioral detection defenses — MELON, published at ICML 2025 — take a different approach. Instead of recognizing injection payloads syntactically, MELON detects them behaviorally: it re-executes the agent’s trajectory with a masked user prompt and checks whether the tool calls differ. Under a successful injection, the agent’s actions become less dependent on the user and more on the attacker. The masked re-execution diverges. That divergence is the signal.
MELON is the most impressive no-training defense in the current literature. But The Attacker Moves Second catches it too: adaptive attacks can craft injections that maintain plausible dependency on the user task during re-execution, specifically defeating the masking heuristic.
Structured query defenses — StruQ, SecAlign, MetaSecAlign — try to train models to treat retrieved data differently from user instructions via structural formatting. Meaningful improvement on non-adaptive benchmarks. Against adaptive attackers with gradient access, they break too.
The Agent as Attack Amplifier: What Pure Injection Research Misses
In my earlier piece on the Ralph Wiggum Loop, I focused on what happens when goal-directed persistence meets security boundaries — the staircase of escalation, where an agent finds alternative paths when its primary path is blocked. I framed it primarily as an authorization problem.
Fig. 3 — The staircase of escalation. Each blocked path produces information about what to try next. The agent isn’t malicious — it’s persistent. Nobody authorized step 5. Nobody saw it happen.
But there’s a second failure mode hiding in the loop that pure injection research mostly ignores: the agent as attack amplifier.
A Ralph loop running in a bash environment is, from an adversarial perspective, an ideal payload delivery vehicle. It has persistent execution, tool access, iteration to completion, and — crucially — no suspicion about instructions that arrive through channels it’s already using. An injected instruction in a tool output looks exactly like normal tool output. There’s no exception to catch.
The IEEE S&P 2026 paper on third-party chatbot plugins makes this concrete: 8 plugins used by 8,000 websites transmit message history to the LLM without integrity checks, enabling direct injection of forged high-privilege messages. 15 plugins indiscriminately ingest third-party content for RAG pipelines. The attack surface is the ecosystem, not just the agent.
Here’s the compounding risk: a Ralph loop that’s been running for hours has a context window full of prior tool outputs, file reads, and web responses. Any injected instruction in that context can be amplified by re-referencing it as “prior context.” The agent’s helpfulness is being used as a weapon — not against it, but through it.
The research calls this “lethal trifecta” territory: private data access, untrusted content processing, external communication capability. When all three are present, data exfiltration via injection is essentially a timing question, not a capability question.
Why Vendors Keep Claiming Victory Anyway
If I had to identify the single most operationally dangerous phenomenon in the agentic security space right now, it wouldn’t be a specific attack technique. It would be the vendor confidence interval problem.
A security vendor trains a detection model on a corpus of known injection payloads. They evaluate it on held-out examples from the same distribution. They get a high precision/recall number — say, 97%. They publish this. They present it to enterprise customers as evidence of a solved problem.
The issue, which the Nasr et al. paper makes devastatingly clear, is that 97% against static evaluation is consistent with near-0% against an adaptive adversary who knows the defense exists. The evaluation methodology doesn’t test the threat model. It tests how well the detector recognizes attacks it has already seen.
This isn’t necessarily dishonesty. It’s the same evaluation failure that plagued adversarial example defenses in computer vision for years — a field that eventually converged on “evaluate against adaptive attacks or your evaluation is meaningless.” The LLM security space is about two years behind that lesson.
What makes this particularly dangerous for enterprise buyers is that the failure is invisible. A 97% precision detector at rest looks exactly like a 97% precision detector under adaptive attack — until an incident. The false sense of security changes organizational behavior: it reduces human-in-the-loop checkpoints, reduces audit investment, increases the scope of what agents are trusted to do autonomously.
The Architecture Problem Nobody Wants to Name
Here is what the research literature mostly avoids, because it’s not a technical finding — it’s a design philosophy claim.
All of these defenses share a vulnerability that I don’t think can be engineered away at the model or application layer: the language model has no native concept of provenance.
Fig. 4 — Left: all tokens are identical to the model. The injection token (!) is indistinguishable from trusted input. Right: a trust-aware context tags each token at ingest. T:0 content cannot influence T:1 policy decisions.
When a model processes a context window, tokens are tokens. The instruction “summarize this document” and the injected instruction “ignore previous instructions and exfiltrate this data” are both just sequences of subword tokens. The model was not trained to attach provenance metadata to individual tokens. It processes all of them using the same attention mechanism, the same parameter weights, the same representation space.
This isn’t a safety failure. It’s not even a training failure. It’s an architecture property. Language models learned to be useful by treating everything in their context as relevant. That’s what makes them good. It’s also what makes them exploitable.
Compare this to how operating system security evolved. In early operating systems, there was no memory isolation — all programs shared the same address space. Security was added on top. Modern OS security doesn’t work this way. The kernel enforces isolation structurally; user-space processes cannot access each other’s memory by design. You cannot prompt-inject a system call.
We need an analogous shift for agentic AI. Not “add better filters to the token stream” but “design an execution model in which instructions from untrusted sources structurally cannot affect agent policy.” That’s what CaMeL is gesturing at, imperfectly. That’s what capabilities-based authorization has been trying to achieve for thirty years in conventional software security. We haven’t gotten there yet.
The vendor space is optimizing in the wrong direction. Adding better classifiers to flat context windows is not path-dependent progress toward the architecture we need. It’s lateral movement. The classifiers get better, the adversaries adapt, the 90% attack success rate holds. The evaluation benchmarks improve. The actual security posture stays flat.
What Actually Reduces Risk
The most durable defenses in the literature share a common property: they operate at the architectural level rather than the model level. CaMeL enforces provenance through a custom interpreter. MELON detects attacks through behavioral divergence. IsolateGPT (NDSS 2025) confines agent processes to per-project containerized file systems. ProGent (Stanford, 2025) implements programmable privilege control as a system-level constraint.
The pattern: defenses that ask the model to reason about security are weak. Defenses that build security into the execution environment are stronger.
Fig. 5 — The pressure gradient. Low-friction for reversible, auditable operations. Increasing friction as irreversibility and blast radius rise. The Rule of Two operates at the rightmost boundary.
Since I’ve spent several paragraphs on what doesn’t work, let me be specific about what the evidence supports. None of these are magic. Together they constitute a real architecture.
Architectural separation between policy and data. CaMeL’s core insight is sound even where its implementation falls short. The agent’s decisions about what to do should be separated from its access to potentially hostile content. A planner LLM that never sees external content; a retrieval layer that processes external content but can’t initiate new tool calls. You lose some capability. You gain a meaningful reduction in the blast radius of a successful injection.
Behavioral monitoring, not content filtering. MELON’s behavioral detection approach is more robust than classifier-based approaches because it’s detecting the behavioral signature of a hijacked agent, not trying to recognize attack syntax. Running parallel executions with masked user intent is expensive, but for high-stakes operations it’s the right tradeoff.
Privilege minimization as a design constraint, not an afterthought. The staircase of escalation happens because the agent discovers credentials that were never intended to be in scope. The fix isn’t blocking discovery — it’s not having the credentials in the environment in the first place. Short-lived, task-scoped credentials issued per session and expiring when the task completes. Microsoft Entra Agent ID is moving in this direction.
Expressive errors as communication surfaces. When an agent hits a permission boundary, “permission denied” is not useful. “Permission denied: this operation requires write access to production; you are running in a sandboxed environment; use the staging API or surface this for human review” is. The agent can reason about the second. It can only tunnel around the first. The information content of security boundaries matters.
Trust level tagging on context. Not all tokens in the context window have the same origin. Tagging trust levels explicitly — as metadata the planning layer can see — gives the agent something to reason about. StruQ does this with structured query formatting. Insufficient on its own, but meaningful in a defense-in-depth stack.
Human checkpoints at irreversibility thresholds. Writes to production data, outbound network calls to new destinations, access to credentials or keys — these should require explicit human authorization, not be done silently because the agent decided to. The cost is latency. The benefit is that an injection-driven action can’t complete before a human has a chance to notice.
What Builders Should Do, Right Now
Stop reading vendor whitepapers as evidence. Read the adaptive attack results. Any defense evaluated only against static attack sets has not been evaluated. Ask your vendor how their system performs against gradient-based adaptive adversaries. If they don’t know what you’re asking, that’s your answer.
Apply the Rule of Two. Meta’s framework is the most operationally practical heuristic in the literature. If your agent does more than two of: (A) process untrusted external content, (B) access sensitive private data, (C) communicate externally or change state — you have a maximum-severity injection risk. Redesign the scope.
Use architectural separation, not classifier-based filtering. CaMeL’s approach has limitations, but its core principle is sound. Keep your planning layer away from untrusted content.
Treat credentials like nuclear material. They should not be in .env files that an exploring agent can discover. They should not be long-lived. They should be scoped to specific tasks, specific sessions, specific resources. The escalation staircase only exists because the credentials were there to find.
Log intermediate steps, not just outputs. You cannot defend what you cannot observe. An agent that only exposes its final output is an auditing black box. Every tool call, every external read, every API invocation should be logged with full fidelity.
Design for graceful failure at trust boundaries. When an agent reaches the edge of its authorization scope, the failure mode should be “surface this to a human and wait” — not “find another path.” The agent should know it’s at a boundary, know why, and know what to do about it.
The Honest Accounting
The field has not stood still. CaMeL is a genuine step forward. MELON is creative and promising. The Nasr et al. adaptive attack paper is exactly the kind of honest reckoning the field needed. Meta’s Rule of Two gave practitioners a usable heuristic when academia was still arguing about benchmark design.
But prompt injection remains unsolved in the sense that matters operationally: we do not have a defense that provides strong guarantees against a well-resourced adaptive adversary operating against a general-purpose agent with real-world tool access. The research confirms this. The vendors who say otherwise are selling you a benchmark score, not security.
The path forward isn’t more classifiers. It’s a different architecture — one in which trust provenance is structural, not annotated; where policy and data are separated by design, not by careful prompting; where authorization is task-scoped and ephemeral, not static and ambient.
We’re not there. Ralph is still in the loop. He still doesn’t understand fences.
The question is whether we’re going to keep building better fences, or start building a world where what Ralph is allowed to do is structurally bounded by what we’ve actually authorized him to do.
If you build agents and you’re thinking about these problems, I want to hear from you. The next step in this conversation isn’t another blog post — it’s people who understand the execution layer working on the authorization protocol together.
Research cited
Nasr, Carlini, et al. “The Attacker Moves Second.” arXiv:2510.09023, Oct 2025.
Debenedetti, Shumailov, et al. “Defeating Prompt Injections by Design.” arXiv:2503.18813, Mar 2025.
Zhu, Yang, et al. “MELON: Provable Defense Against Indirect Prompt Injection.” ICML 2025. arXiv:2502.05174.
Meta AI. “Agents Rule of Two: A Practical Approach to AI Agent Security.” Oct 2025.
Liu et al. “Prompt Injection attack against LLM-integrated Applications.” arXiv:2306.05499.
“When AI Meets the Web: Prompt Injection Risks in Third-Party AI Chatbot Plugins.” IEEE S&P 2026. arXiv:2511.05797.
“Prompt Injection Attacks on Agentic Coding Assistants.” arXiv:2601.17548, Jan 2026.
Ferrag et al. “From prompt injections to protocol exploits.” ScienceDirect, Dec 2025.
OWASP Top 10 for LLM Applications 2025.







