Prompt injection and jailbreaking are not the same attack, even though most security discussions — and OWASP's own taxonomy — treat them as one thing. The practical difference is what layer the attack targets, and that difference determines who can fix it and what a control set actually needs to cover.

The one-sentence difference

Prompt injection manipulates what an LLM-based application does by feeding it untrusted data; jailbreaking manipulates what the underlying model itself will say or do by defeating its safety training directly (Promptfoo). One is an application-layer input-handling problem. The other is a model-layer alignment problem. They get confused because both work by crafting text that changes model behavior — but the target of that text, and who is positioned to fix the resulting failure, are different in each case.

Prompt injection Jailbreaking
Target The application layer — how untrusted data (documents, tool results, web content) is processed The model's own safety alignment
Attacker input Content the LLM application ingests as data, not necessarily addressed to the model as an instruction Direct or crafted prompts addressed to the model, designed to override refusal behavior
Who can fix it The application team — input validation, instruction hierarchy, output monitoring Primarily the model provider — alignment and training-time techniques the application layer cannot directly control
Detection signal Anomalous instructions embedded in ingested content; unexpected tool calls following untrusted input Refusal bypass; the model producing content it was trained to decline
Control owner Platform/security engineering building the application Model provider, with application-layer guardrails as a secondary check

(Table synthesizes the target, defense, and ownership distinctions sourced from Promptfoo's comparison, as of August 2026.)

Prompt injection targets the application layer

Prompt injection exploits the fact that an LLM application typically cannot distinguish trusted instructions from untrusted data once both are concatenated into the same context window. A document the agent summarizes, a tool result it processes, a webpage it fetches — any of these can carry text crafted to look like an instruction, and the model has no structural way to know that text arrived from an untrusted source rather than from the developer's system prompt (Promptfoo, as of August 2026).

The attacker in this case does not need direct access to the model at all. They need only get content in front of the application that the application will feed to the model — an email an agent reads, a support ticket it processes, a search result it fetches. This is why prompt injection is described as targeting the application layer: the vulnerability is in how the application assembles and trusts its context, not in the model's training.

For the detailed threat model and detection technique, see the threat model for indirect prompt injection and how to detect prompt injection — this post stays at the boundary between the two attack classes rather than re-covering that ground.

Jailbreaking targets the model's safety alignment

Jailbreaking is a direct attack on the model itself — inputs crafted to make the model disregard its safety training and produce content or behavior it was explicitly trained to refuse (Promptfoo, as of August 2026). Where prompt injection hides an instruction inside data the application trusted, jailbreaking is typically an instruction addressed directly to the model, engineered — through role-play framing, incremental escalation, or adversarial phrasing — to get past the model's own refusal behavior.

Group-IB's framing places jailbreaking as a specific technique within the injection family: a prompt-injection input where the goal is to make the model disregard its safety protocols entirely, rather than merely redirect its behavior within otherwise-normal operation (Group-IB, as of August 2026). That framing is useful precisely because it shows where the two concepts overlap and where they diverge — both work by crafting adversarial input, but injection can succeed while the model's alignment stays fully intact (it simply acted on data it should not have trusted), while a jailbreak succeeds specifically by defeating that alignment.

Multi-turn jailbreaks, which build up an escalating context across several exchanges rather than attempting the break in a single message, are covered in depth in the crescendo-attack post — that post owns the mechanics of how a jailbreak is constructed; this post stays on the boundary between the two classes.

Why OWASP LLM01 groups them, and why that confuses practitioners

OWASP's Gen AI Security Project places jailbreaking as a form or subset of LLM01: Prompt Injection in its 2025 Top 10 (OWASP Gen AI Security Project, as of August 2026). That classification choice is defensible from a taxonomy standpoint — both are, mechanically, attacks delivered as adversarial text input to an LLM system — but it is also the exact source of the confusion this post exists to resolve.

Grouping the two under one heading suggests they share one control set, when in practice they do not. An application team can meaningfully reduce prompt-injection risk through input handling, instruction hierarchy, and output monitoring entirely within their own system, without waiting on anyone else. A jailbreak succeeding against the base model is, by definition, a failure the application layer did not cause and mostly cannot fix — the model disregarded its training regardless of what the application sent it. Treating both as "LLM01 mitigations" risks an application team believing their input-validation work has closed a gap that is actually the model provider's to close.

Defenses that only work for one of them

The defenses genuinely split by target, and applying the wrong one gives a false sense of coverage.

Defenses that address prompt injection but not jailbreaking: instruction hierarchy that marks ingested content as data rather than instructions; output filtering that catches an application taking an unintended action; segregating untrusted content from the instruction channel before it reaches the model; monitoring for tool calls that follow suspicious ingested content.

Defenses that address jailbreaking but not prompt injection: the model provider's alignment and safety training itself; red-teaming the model against known jailbreak patterns before deployment; refusal-consistency evaluation across adversarial prompt variants — all of which happen upstream of, and largely outside, the application's own code (Promptfoo, as of August 2026).

Defenses that meaningfully address both, applied at the application layer: guardrails that inspect model output before it reaches a user or triggers a tool call, regardless of whether the output resulted from injected data or a successful jailbreak — because from the output side, a policy violation looks the same either way.

What changes when the system is an agent, not a chatbot

In a chatbot, a successful jailbreak produces an unwanted response — text a user reads. In an agent with tool access, a successful jailbreak or a successful injection produces an unwanted action — a file written, an email sent, an API called. That escalation from output to action is the entire reason agent governance needs controls at both layers simultaneously rather than picking one.

A jailbroken model with no tools is a content-moderation problem. A jailbroken model with tools is an authorization problem, because the model's refusal training was the only thing standing between the request and a real-world effect once the refusal is bypassed. Similarly, an injected instruction that only changes a chatbot's wording is a nuisance; the same injected instruction reaching an agent that can call a tool is a potential unauthorized action. This is the practical reason application-layer guardrails — output inspection, tool-call authorization, instruction hierarchy — matter even for organizations that trust their model provider's alignment work: the agent's action surface is downstream of both failure modes, and only the application layer can bound what an action, once triggered by either kind of failure, is actually allowed to do.

Put differently: a chatbot's worst-case failure from either attack class is a bad sentence a human reads and can choose to ignore. An agent's worst-case failure from either attack class is a bad action a system already executed before any human saw it — a distinction that changes not just how severe the incident is, but how fast a control has to intervene to matter at all. Treating jailbreaking and prompt injection as one undifferentiated "LLM01" risk, without asking which layer actually failed, leaves that action surface unbounded regardless of how much effort went into either the model's alignment training or the application's input handling alone.

The OWASP Agentic AI Top 10 guide covers the full control set this escalation argues for — treat this post as the map of which failure mode you are actually looking at before reaching for either guide's specific mitigations.