From Shubhi K | Product & Market Analysis
Prompt Injection Is the New SQL Injection, and the Fix Does Not Exist Yet
On this page
Zscaler pointed an autonomous agent at two live attack sites and ran 26 language models through them. 4 paid the attacker. Prompt injection is the agent era's version of SQL injection, with one difference that decides everything downstream: SQL injection got a structural fix, and this has not. What exists instead is containment, and containment is measurable.
Key takeaways
- Prompt injection is not an input filtering problem. The OWASP GenAI list published on 4 August 2026 keeps it at number one and moves Excessive Agency from sixth to third. The ranking is telling you to bound the agent, not to clean the text.
- The attacks are live and currently crude. Google reported a 32% relative rise in malicious injection content across its monthly web crawl between November 2025 and February 2026, and said it saw no significant volume of advanced attacks.
- Vendor mitigations move the number without closing it. Anthropic's own red team cut browser agent attack success from 23.6% to 11.2% across 123 test cases, and drove one browser-specific attack class from 35.7% to zero.
- Every published defence has fallen to an adaptive attacker. Researchers tested 8 defences against indirect prompt injection and bypassed all 8, each at an attack success rate above 50%.
What prompt injection actually is
Prompt injection is an attack in which text a model reads as data gets executed as an instruction. The model has one input channel. Your system prompt, the user's request and a retrieved web page all arrive in the same token stream, and nothing in that stream marks which part carries authority.
That is the entire vulnerability. Everything else is a variation on it.
It stops being an academic curiosity the moment the model can act. A chatbot that has been talked into rudeness is an embarrassment. An agent with a browser, a file system and a payments tool is an employee who believes whatever it reads.
Direct injection versus indirect injection
Direct injection is typed by the user. Someone is trying to talk your model out of its own rules, usually to see what it will say. The blast radius is the conversation.
Indirect injection arrives inside content the model fetches on the user's behalf. A document, a support ticket, a calendar invite, a README, a search result. The victim never sees the payload, and the agent carries out the attacker's instruction using the victim's permissions.
Those two things get filed under one name and they are not one problem. My position is that the industry should have split the terminology two years ago, because the mitigations barely overlap.
Why the model cannot separate instructions from data
A language model predicts the next token from the whole context. There is no privileged region of that context that the architecture enforces. System prompts get followed more often than retrieved text does, but that is a trained tendency, not a boundary.
You can see the consequence in the numbers. Anthropic's own red team measured a 23.6% attack success rate against its browser agent before mitigations, across 123 adversarial test cases. That is a frontier lab, testing its own product, publishing the result. The honesty is the useful part.
The SQL injection parallel, and where it breaks
The comparison is not a metaphor. It is the same failure: a control channel and a data channel sharing one pipe.
In SQL injection, user input is concatenated into a query string and the database executes it as code. In prompt injection, retrieved text is concatenated into a context window and the model follows it as an instruction. Same shape, different interpreter.
What made SQL injection tractable
Parameterised queries. The application sends the query structure and the data separately, so the database never has to guess which is which. It is deterministic, it is cheap, and it is verifiable by a linter.
Note what that fix did not require. It did not require the database to get smarter at spotting malicious strings. It changed the interface so the question never came up.
Even so, injection never left the OWASP Top 10. It has been on the list since the first edition in 2003, ranked first in every edition from 2010 to 2017, and it still sits at A03 in the 2021 web application list. A solved vulnerability class with a free, well-documented fix took over twenty years and is still not gone.
There is no parameterised query for natural language
You cannot bind a parameter in English. The closest published work is CaMeL, from Google, Google DeepMind and ETH Zurich, which extracts the control and data flow from the trusted user query and never lets untrusted data touch the program flow.
It works, and the price is legible. CaMeL solves 77% of AgentDojo tasks with provable security, against 84% undefended. Roughly 7 points of task completion, plus a full re-architecture of how your agent is built. That is the cheapest honest trade on the table right now, and almost nobody is paying it.
| Property | SQL injection | Prompt injection |
|---|---|---|
| What confuses the interpreter | User input concatenated into a query | Retrieved content concatenated into a context window |
| Structural fix available | Yes, parameterised queries | No equivalent. Provenance tracking is the nearest thing. |
| Cost of the fix | Near zero, and it improves the code | 7 points of task completion plus a re-architecture, on the best published result |
| Can a test suite prove absence | Largely yes, by static analysis | No. The input space is all of natural language. |
| Years on the OWASP Top 10 | Every edition since 2003 | Number one in 2025 and again in 2026 |
The fourth row is the one that changes how you plan. With SQL you can ship a fix and then prove it holds. With prompt injection you can only reduce a rate and keep measuring it.
What attackers are actually doing right now
The theory has been public since 2022. The field data is much newer, and it says something more specific than the headlines do.
Google analysed monthly Common Crawl snapshots covering 2 to 3 billion pages each, using pattern matching, a Gemini classifier and manual validation. It sorted what it found into five categories: harmless pranks, helpful guidance for agents, search engine optimisation, attempts to deter agents entirely, and malicious content aimed at exfiltration or destruction.
The malicious category rose 32% in relative terms between November 2025 and February 2026. Google also stated plainly that it did not observe significant amounts of advanced attacks, and judged most of what it saw unlikely to work.
Two campaigns, one Ethereum wallet
Zscaler's ThreatLabz published the first detailed public account of live campaigns on 2 July 2026, and the detail is worth reading closely because it shows what a working attack costs.
The first campaign was a fake page dressed as a Python library's documentation, linked from 10 GitHub repositories. It told any coding agent that arrived that fixing its error required a $3.00 API licence key, then walked it through paying roughly 0.0012 ETH to an attacker wallet. The second used a typosquatted domain impersonating a cryptocurrency portfolio tracker, with hidden text instructing agents to treat the fake site as authoritative.
ThreatLabz ran its own agent against both across 26 models. 4 completed the payment and 2 rated the fake site legitimate. Note the shape of that result. 22 of 26 refused. This is not a coin flip, and it is also not a rate any CFO would accept on outbound payments.
The wave in productivity tools
The second signal came from disclosures rather than crawls. PromptArmor reported an indirect injection path in Notion AI through HackerOne on 24 December 2025, disclosed it publicly on 7 January 2026, and Notion confirmed remediation in production the following day. The mechanism was mundane: AI document edits were saved before the user approved them, so exfiltration completed before anyone could intervene.
That disclosure sat inside a cluster of similar findings across AI productivity tools in the same month. Treat the cluster as directional rather than measured, because it is a count of what researchers chose to publish, not a survey. What it does establish is that these are shipping products with real users, not laboratory constructions. The same pattern of unattended agents drifting outside expected behaviour is covered in the piece on monitoring agents in production.
The lethal trifecta explains why every useful agent is exposed
Simon Willison, who named prompt injection in 2022, gave the dangerous configuration a second name in June 2025: the lethal trifecta. Three capabilities, all present at once.
Access to private data. Exposure to untrusted content. The ability to communicate externally. Any agent holding all three can be talked into reading your data and sending it somewhere else, and the user sees nothing.
The awkward part is that this is a description of a useful product. An agent that cannot see your data cannot help you. An agent that cannot read the web cannot research. An agent that cannot send anything cannot act. Remove a leg and you have removed the reason someone bought it.
That is why I do not believe prevention framing survives contact with a roadmap. You are not going to talk a product team out of the trifecta. You are going to bound what each leg can reach, which is a different engineering conversation and a much more tractable one. Tool exposure through the MCP interoperability standard makes that boundary an explicit, inspectable surface rather than an implicit one.
What the measured defences actually deliver
There are two bodies of evidence and they disagree in tone, which is exactly why you should read both.
What the vendors measured
Anthropic tested its Chrome extension against 123 adversarial cases spanning 29 attack scenarios before shipping it. Attack success in autonomous mode fell from 23.6% to 11.2% after mitigations. On a browser-specific challenge set involving hidden form fields and URL manipulation, the rate went from 35.7% to zero.
The stack that produced it was layered: site-level permissions, mandatory confirmation on high-risk actions such as purchases, blocked categories, and classifiers on incoming content. Anthropic's own framing was that 11.2% remains insufficient for broad deployment. Saying so publicly is the correct move and it is not a common one.
What the adversarial researchers measured
Zhan, Fang, Panchal and Kang took 8 published defences against indirect prompt injection and attacked each one adaptively, meaning the attack was tuned to the specific defence rather than fixed in advance. All 8 fell. Every bypass exceeded a 50% attack success rate.
The gap between these two results is not a contradiction. It is the difference between a static test set and an adversary who reads your paper. A defence measured only against fixed attacks reports a number that will not survive contact with anyone motivated. If your vendor quotes a resistance figure, the question to ask is whether the attacks were adaptive.
A layered stack you can actually deploy this quarter
Governments landed on the same conclusion. On 1 May 2026, CISA, the NSA and their counterparts across the Five Eyes published Careful Adoption of Agentic AI Services, the first coordinated multi-government guidance on agentic systems. It names prompt injection as the most persistent and hardest-to-fix threat, and its remedy is not a filter. It is zero trust, least privilege and defence in depth, extended to agents.
Here is that advice compiled into something you can hand to an engineer.
| Layer | What it stops | What it does not stop |
|---|---|---|
| Least-privilege tool and data scope | Most of the damage, because the agent cannot reach what it was never granted | Abuse of the permissions it legitimately needs |
| Provenance separation, CaMeL style | Untrusted text influencing control flow at all | Nothing today, on the published result, but it costs task completion and a rebuild |
| Classifiers on retrieved content | Known injection patterns and the crude majority now in the wild | Adaptive attackers who test against the same classifier |
| Human confirmation on irreversible actions | Payments, deletions and outbound sends completing silently | Approval fatigue. Confirm everything and users approve everything. |
| Egress allowlisting | Exfiltration, by removing the destination | Attacks whose goal is destruction rather than theft |
| Tool-call logging with triggering content | Nothing in real time. It makes an incident reconstructable. | The first incident. This is a detection and forensics layer. |
Rows one and five are the cheapest and the most effective, and they are the two most often skipped because they make the demo worse. Row four is the one that decays quietly through overuse.
If you run agents across more than one model provider, the permission surfaces differ enough to matter, and the comparison of enterprise governance controls across ChatGPT, Claude and Gemini is the practical starting point. The failure modes that show up when a pilot skips these layers are catalogued in the breakdown of why agent pilots die.
Where this argument is weakest
Three things cut against the case above, and one of them is serious.
The in-the-wild evidence is thinner than the headline suggests. Google's dataset explicitly excludes login-walled social platforms and sites with anti-crawl directives, which is a large hole in a study of where hostile content lives. A 32% relative increase from a small base is still a small base. Google's own reading was that most of what it found would not work.
The Zscaler result cuts both ways too. 4 of 26 models paying is alarming if you run one of those 4 and unremarkable if you read it as 85% of tested models correctly refusing. It is one vendor's original research on two campaigns, and it has not been independently replicated. I am citing it because the methodology is published and the detail is specific enough to disprove, which is the correct trade, but a single unreplicated study is not a base rate.
The serious objection is that the analogy flatters the defender. SQL injection was fixed by changing an interface between two pieces of software. There is no equivalent interface between a model and its context, and there may never be one, because the flexibility that makes the model useful is the same property that makes the boundary undefinable. Anyone saying we will eventually get a parameterised query for prompts is describing a hope, not a roadmap. If that is right, containment is not a stopgap. It is the permanent answer, and the industry should stop treating it as an embarrassment.
The counter-case to my own position deserves a hearing. Nobody demands a bug-free web application before putting it on the internet. They demand bounded blast radius, monitoring and a response plan. Judged by that standard, agents are not uniquely broken. They are early, and the controls are arriving in roughly the order they arrived for web applications, only faster.
What this changes in your next agent purchase
Security teams have been shouting about this for a year. The part that has not moved is procurement, and procurement is where the leverage sits, because it is the last moment you have pricing power.
Ask a vendor these five questions and score the answers. A vendor who has done the work will answer in specifics within a minute. A vendor who has not will answer with the word "enterprise-grade".
| Question | What a real answer sounds like | What the dodge sounds like |
|---|---|---|
| What is your measured attack success rate, and were the attacks adaptive? | A percentage, a test-set size, and a stated method | "Our models are trained to resist prompt injection." |
| Which actions require human confirmation, and can we configure that list? | A named list plus an admin setting | "The agent asks when it is unsure." |
| Can we allowlist egress destinations per workspace? | Yes or no, and where the setting lives | "All traffic is encrypted." |
| Do your logs record the content that triggered each tool call? | A retention period and an export path | "Full audit logging is included." |
| What do you owe us if an injection causes a loss? | A clause number and a cap | Silence, then a redirect to the security page |
The last row is the one that changes vendor behaviour fastest, because it converts a security question into a commercial one. The specific clauses worth negotiating are set out in the analysis of agent liability caps and remedies.
Two commercial notes for whoever owns the budget. First, the containment layers above cost engineering time, not licence fees, so they rarely appear in a business case and rarely get scheduled. Second, unsanctioned tools are where the trifecta assembles itself without anyone deciding, which is the quiet expense quantified in the breakdown of what shadow AI costs when it breaks. The contract clauses a CFO should insist on are the cheapest place to make both problems someone else's.
Frequently asked questions
What is prompt injection in AI?
Prompt injection is an attack in which text a model reads as data is executed as an instruction. A language model receives your system prompt, the user request and any retrieved content in one undifferentiated token stream. Nothing in that stream marks which part carries authority, so a sentence hidden in a web page can redirect an agent that has tool access.
What is the difference between direct and indirect prompt injection?
Direct injection is typed by the user, who is trying to break the model's own rules. Indirect injection arrives inside content the model fetches, such as a document, an email, a support ticket or a web page. Indirect is the harder problem because the victim never sees the payload and the agent acts with the victim's permissions.
Can prompt injection be fixed?
Not in the way SQL injection was fixed. Parameterised queries removed the ambiguity by sending data to the database through a separate channel from code. Language models have no second channel. The strongest published result, CaMeL from Google DeepMind and ETH Zurich, gets provable guarantees by restricting what untrusted data can influence, and it solves 77% of AgentDojo tasks against 84% for an undefended agent.
Is prompt injection actually happening in the wild?
Yes, and it is still crude. Google analysed monthly Common Crawl snapshots covering 2 to 3 billion pages and reported a 32% relative rise in malicious injection content between November 2025 and February 2026. It also said it found no significant volume of advanced attacks. Zscaler documented two live campaigns in July 2026, one of which persuaded 4 of 26 tested models to send cryptocurrency to an attacker.
How do I protect an AI agent from prompt injection?
Assume the model will be fooled and bound what a fooled model can reach. Give each agent the narrowest tool and data scope its job needs. Require human confirmation before irreversible actions such as payments, deletions and outbound sends. Restrict egress destinations so exfiltration has nowhere to go. Log every tool call with its triggering content so an incident can be replayed.
Why is prompt injection compared to SQL injection?
Both are confusion between a control channel and a data channel. In SQL injection, user input is concatenated into a query and executed as code. In prompt injection, retrieved text is concatenated into a context window and followed as an instruction. The comparison is useful for the diagnosis and misleading for the cure, because SQL got a clean structural fix and natural language has not.
Where to start this week
Pick one agent already running in your business and write down its trifecta. What private data can it read, what untrusted content does it consume, and what can it send outward. Most teams cannot answer the third question, and finding that out takes an afternoon.
Then remove one capability from that list and see whether anyone complains. If nobody notices within a fortnight, you have found a permission that existed because it was easy to grant, not because the job needed it. That single deletion will do more for your exposure than any classifier you buy this quarter.
If you only do one thing
Ask your agent vendor for a measured attack success rate and whether the attacks were adaptive. The answer, or the pause before it, tells you most of what you need to know.
References
- Zscaler ThreatLabz, Indirect Prompt Injection in Web Content Targets AI Agents, 2 July 2026. Used for both campaigns, the 26-model test, the $3.00 key and the 0.0012 ETH payment.
- Infosecurity Magazine, Indirect Prompt Injection in Web Content Targets AI Agents, July 2026. Independent coverage of the Zscaler findings.
- Google, AI threats in the wild: the current state of prompt injections on the web, 23 April 2026. Used for the crawl scale, the five categories and the 32% figure.
- Anthropic, Piloting Claude in Chrome, 25 August 2025. Used for 123 test cases, 29 scenarios, 23.6% to 11.2%, and 35.7% to zero.
- Zhan, Fang, Panchal and Kang, Adaptive Attacks Break Defenses Against Indirect Prompt Injection Attacks on LLM Agents, arXiv:2503.00061, 2025. Used for the 8 of 8 result.
- Debenedetti et al., Defeating Prompt Injections by Design, arXiv:2503.18813, 2025. Used for CaMeL and the 77% against 84% AgentDojo figures.
- CISA, NSA and Five Eyes partners, Careful Adoption of Agentic AI Services, May 2026. Used for the containment framing and the threat characterisation.
- Help Net Security, OWASP 2026 LLM Top 10 released, 6 August 2026. Used for the 4 August publication date and the Excessive Agency move.
Weakest thing about this source base: the two most quotable field figures come from single vendor studies, Zscaler and Google, neither independently replicated, and Google's crawl excludes login-walled platforms. The academic results are reproducible; the prevalence estimates are not yet.
Related reading