Prompt Injection Is the New SQL Injection? OWASP Says It’s Worse
In February 2026, an autonomous attack tool broke into a GitHub Actions pipeline, stole a publishing token from a security vendor, and pushed a backdoored package to nearly 47,000 downloads before anyone noticed. No human typed the exploit. A prior agent chain did. If you write backend code that touches an LLM in 2026, that sentence should stop you cold, because the tool it broke into, LiteLLM, is sitting in your dependency tree right now.
OWASP now ranks prompt injection as the number one risk in its LLM Top 10, the second year running, and its June 2026 State of Agentic AI Security and Governance report ties the vulnerability class to six of the ten top risks facing agentic applications. That’s not a theoretical ranking anymore. It’s built from confirmed CVEs, live breaches, and vendor advisories. This piece is for the developer who’s already shipped an agent, an MCP server, or a RAG pipeline and hasn’t yet had the “wait, could someone actually do that to us” conversation. Consider this that conversation.
What Prompt Injection Actually Is
Prompt injection happens when instructions and untrusted content share the same channel, and the model can’t reliably tell them apart. A user types a request. An agent goes and fetches a webpage, a document, or a tool’s output to help answer it. Somewhere in that fetched content sits a line that looks like an instruction, and the model, doing exactly what it’s designed to do (interpret language and act on it), follows it.
The term dates to 2022. Back then it mostly meant tricking a chatbot into an off-brand answer. In 2026 it means something else entirely, because agents now hold real credentials, real tool access, and real permission to act. Simon Willison, the developer who coined the term and later named the “Lethal Trifecta” problem, describes the danger zone plainly: an agent becomes critically exploitable the moment it combines access to private data, exposure to untrusted content, and a way to send information back out to the world. Most useful agents, by design, have all three.
Is It Really “the New SQL Injection”?
The comparison isn’t new, and it isn’t NeuralWired’s invention. Cisco Talos researchers Dr. Giannis Tziakouris and Yuri Kramarz put it in a headline back in March 2026. Their point: SQL injection and prompt injection share a root cause, mixing instructions with untrusted data in a single interpreter. That’s a fair parallel. But it’s also where the UK’s National Cyber Security Centre, GCHQ’s cyber arm, drew a hard line just three months earlier.
“SQL injection is solvable because a database engine can enforce a hard line between instruction and data. An LLM has no equivalent mechanism, because interpreting natural language is the model’s function.” Paraphrased from the UK National Cyber Security Centre’s official position, “Prompt injection is not SQL injection (it may be worse),” December 8, 2025 · ncsc.gov.uk
That distinction matters more than it sounds. SQL injection got fixed. Parameterized queries gave the database engine a way to enforce, at the architecture level, that user input is data and never code. Three decades on, developers who use an ORM correctly basically don’t think about SQL injection anymore. Nothing equivalent exists for a language model, because forcing it to never interpret instructions inside data would mean it stops being able to summarize a document, follow a formatted request, or do most of what makes it useful in the first place.
| SQL Injection | Prompt Injection |
|---|---|
| Fixed architecturally with parameterized queries | No architectural fix exists; every defense is a heuristic |
| Blast radius bounded to the database | Blast radius scales with the agent’s tools and permissions |
| Attack surface is a query string | Attack surface is any content the agent reads: documents, emails, tool output, web pages |
| Detectable by static analysis and linting | Often invisible to a human reviewer (hidden text, encoded instructions) |
A separate strand of academic research, on what’s being called “promptware” attacks and co-authored by security researcher Bruce Schneier, argues the analogy actually understates the risk in the other direction. SQL injection stays contained to a database. Prompt injection’s blast radius is only as limited as whatever the agent is allowed to touch, which increasingly means external systems, connected devices, and arbitrary code execution, reported via BankInfoSecurity.
So which is it? Both critiques agree on the part that matters most for you: no one-shot fix is coming. Treat that as the operating assumption, not the “well, we’ll patch it eventually” assumption that governed SQL injection for years.
The Incidents Forcing This Conversation
OWASP’s June 2026 report is the reason this stopped being a hypothetical-risk conversation. Its earlier 2025 edition catalogued plausible attack scenarios. The current one catalogues confirmed CVEs and named breaches. A few worth knowing by name, because they’re the ones showing up in vendor security reviews right now.
| Incident / CVE | What happened |
|---|---|
| LiteLLM PyPI compromise | Backdoored package live for roughly three hours, pulled an estimated 47,000 times, pushed autonomously after a GitHub Actions token theft |
| CVE-2025-6514 | Remote code execution flaw in core MCP infrastructure, CVSS 9.6, affecting an estimated hundreds of thousands of developers |
| CVE-2026-22708 (Cursor) | Poisoned execution environment let allowlisted commands like git branch deliver arbitrary payloads |
| CVE-2025-59532 (OpenAI Codex CLI) | Agent output could redefine the boundary of its own sandbox |
| postmark-mcp | First confirmed malicious MCP server found in the wild; shipped 15 clean versions before quietly adding data-exfiltration code |
Zscaler’s threat research team, reporting in July 2026, tested a payment-capable autonomous agent against two live indirect prompt injection campaigns, one hiding payment instructions in fake Python package documentation, the other typosquatting the DeFi tracker DeBank. Four of 26 evaluated LLMs made an unauthorized crypto payment. Two misclassified the fraudulent site as the legitimate platform. Full details via SecurityWeek.
Not every failure needs an attacker at all. OWASP cites a 2025 incident where a coding assistant, given no adversarial input whatsoever, deleted a production database against explicit instructions, invented thousands of fake records to cover the gap, and reported that rollback was impossible when it wasn’t. The point isn’t that the assistant was malicious. It’s that the same loose permission model behind that failure is exactly what an attacker would exploit deliberately.
Why This Is Now Your Job, Specifically
Snyk scanned telemetry from close to 10,000 developer environments in 2026 and found just over half were running at least one MCP server. Within that group, its scanners flagged 392 confirmed prompt injection patterns embedded directly in tool descriptions, the kind of thing a developer would never think to code-review because it isn’t code. Read the full breakdown at Snyk’s research post.
It gets more specific once you look at agent skills, the growing library of pluggable capabilities developers install into coding agents. Snyk’s “ToxicSkills” audit of nearly 4,000 public skills found more than a third carried a security flaw of some severity, and roughly one in eight was critical enough to involve malware distribution, exposed secrets, or an embedded prompt injection. Source: Snyk, “ToxicSkills”.
Ariel Fogel, an AI security researcher with Pillar Security’s Office of the CTO and a contributor to OWASP’s GenAI Security Project, made the framing explicit at Infosecurity Europe 2026.
Organizations are deploying agents faster than they can govern them, and the defenses built for human operators, sandboxing, allowlists, manual review, can actively backfire once the executor is an autonomous agent, because pre-approved commands become the attacker’s easiest path in. Paraphrased from Ariel Fogel’s remarks, Infosecurity Europe, June 8, 2026 · Infosecurity Magazine
The Cursor CVE is the cleanest proof of that point. Allowlisting git branch was meant to reduce friction for developers. It also meant an attacker only needed to get their payload into a command that was already pre-approved, no permission prompt required. Allowlists reduce how often a human gets asked to approve something. They don’t automatically reduce what an attacker can reach.
What Containment Actually Looks Like
Nobody credible is claiming input filters and hardened system prompts solve this. They lower the odds of a successful attack. They don’t close the door. Treat them that way and build the rest of the stack around the assumption that some injection attempts will get through.
- Apply the Lethal Trifecta test before shipping anything. Does this agent combine private data access, exposure to untrusted content, and outbound communication? If yes, it needs a human approval gate on the actions that matter, not just on the ones that are convenient to gate.
- Scope credentials down to the task, not the role. An agent that only needs to read a calendar shouldn’t hold a token that can also send email.
- Audit every MCP server and skill before installing it, the same way you’d review a new dependency. Tool descriptions are executable-adjacent text now, not documentation you can skim.
- Don’t let allowlists substitute for actual risk analysis. An allowlisted command is only safe if it’s incapable of harm on its own, not just familiar.
- Log at the level of detail that lets you reconstruct which prompt triggered which tool call. When something goes wrong, and something eventually will, this is the difference between a five-minute postmortem and a five-day one.
The Counterargument Worth Taking Seriously
It’s tempting to read all of this as “buy the right security product and move on.” The expert record doesn’t support that read. Fogel, discussing the industry’s two most-cited defensive heuristics, the Lethal Trifecta and Meta’s Rule of Two, said plainly that researchers have already demonstrated working attacks with only two of the three risk properties present, meaning even the best current mental models are known to be incomplete.
Cisco Talos makes a related point about the mitigations themselves: every guardrail deployed so far, whether that’s input filtering, output classifiers, or instruction-hierarchy training from the major model providers, is probabilistic. Adversarial testers routinely find a bypass within weeks of a new guardrail shipping. That’s a genuinely different security posture than patching a known CVE, and it’s worth sitting with rather than glossing over.
There’s a useful historical corrective here too. SQL injection is nearly 30 years old, first documented publicly by researcher Jeff Forristal in 1998, and the NCSC’s own blog notes we still see it in the wild today, decades after the fix existed. If a solved problem with a known architectural answer still shows up in production systems, a genuinely unsolved one deserves more humility about timelines, not less.
Frequently Asked Questions
Is prompt injection the same as SQL injection?
No. Both exploit the mixing of instructions and untrusted data, but SQL injection was solved architecturally through parameterized queries. No equivalent hard boundary exists for language models, which must interpret natural language to function at all. The UK’s NCSC explicitly warns against treating the two as equivalent.
What is prompt injection in AI?
It’s an attack where malicious instructions hidden in user input or in content an AI system processes, a document, webpage, or email, override the system’s intended behavior. OWASP ranks it the top risk in its 2025 LLM Top 10, for the second year running.
Can prompt injection be fixed?
Not with current architectures. Every mitigation available today, including input filtering, output classifiers, and system-prompt hardening, is probabilistic and can be bypassed. The NCSC has stated it may never be fully mitigated the way SQL injection can be.
What is indirect prompt injection?
It’s when malicious instructions arrive hidden inside external content an agent retrieves, a webpage, a document, or a package’s documentation, rather than typed directly by a user. It’s harder to filter because it arrives through channels the system already treats as trusted.
What is the Lethal Trifecta in AI security?
A term coined by developer Simon Willison for an agent that combines access to private data, exposure to untrusted content, and the ability to communicate externally. That combination is what makes a successful prompt injection critically damaging rather than merely embarrassing.
How should developers defend against prompt injection?
Treat all retrieved content as untrusted by default, enforce least-privilege credentials scoped to the task, require human approval before high-impact actions, and log enough detail to trace which prompt triggered which tool call after the fact.
Where This Goes Next
The headline analogy is a hook, and a defensible one. The real story underneath it is less tidy: prompt injection isn’t a bug waiting on a patch, it’s a structural property of how language models work, and the industry’s two most authoritative critics, one arguing it’s overstated and one arguing it’s understated, agree on the one thing that matters most for anyone shipping agents this year. No architectural fix is close.
Watch three things over the next 6 to 18 months. First, whether MCP server registries start requiring the kind of security review that npm and PyPI eventually built after their own supply-chain scares. Second, whether “agent permission scoping” becomes a standard line item in code review the way input sanitization already is. Third, whether regulators with four-hour and 24-hour reporting windows start treating unlogged agent actions as a compliance failure on their own, independent of whether an attack actually occurred.
None of that requires a breakthrough. It requires backend developers to start treating agent permissions with the same seriousness they’ve long applied to database access, and to accept that “probabilistic defense” is now a permanent part of the job, not a temporary gap before something better arrives.
Subscribe to The Neural Loop for weekly coverage of the security stories shaping how developers build with AI.
