Skip to main content

Prompt injection testing: what a tester tries and what a good finding looks like

Prompt injection is when text the model reads changes what it does. Testing it means trying instructions through every input the system accepts and recording what they reach. The question is not whether the model can be steered, but what happens next.

What it is, and the two kinds

OWASP: “a Prompt Injection Vulnerability occurs when user prompts alter the LLM’s behavior or output in unintended ways”. It adds that “prompt injections do not need to be human-visible/readable, as long as the content is parsed by the model”. It is item LLM01 in the OWASP Top 10 for LLM Applications 2025.

  • Direct. OWASP: “direct prompt injections occur when a user’s prompt input directly alters the behavior of the model in unintended or unexpected ways”.
  • Indirect. OWASP: “indirect prompt injections occur when an LLM accepts input from external sources, such as websites or files”. Like direct injection, it can be intentional or unintentional.
Direct and indirect prompt injectionDirect: a user types an instruction into the chat, the application passes it to the model, and the model’s behaviour changes. Indirect: content from a web page, file or email contains an instruction, the application fetches it as data, and the model’s behaviour changes without the user typing anything.DirectA user types itInto the chat box or APIThe app passes it onAs part of the promptThe model changes behaviourIndirectContent carries itWeb page, file, email, recordThe app fetches itAs data for the model to readThe model changes behaviour
Who writes the instruction, and what carries it to the model.

What a tester tries

A tester works through each channel by which text reaches the model, and records what the system does. Typical coverage:

  • Every input channel. Chat, API fields, uploaded files, pages the system browses, emails it summarises, records it retrieves, and the output of tools it calls.
  • Overriding the instructions. Whether input can change the rules set in the system prompt.
  • Reaching what it should not. Whether injected text can make the system reveal its hidden instructions, show another user’s data, or call a tool the user could not use directly.
  • What happens to the output. Whether model output is displayed or passed on without checks, for example into a web page or another system.
  • Which safeguards hold. Whether limits that sit outside the model, such as permissions and confirmations, stopped the action when the model was fooled.

In our mapping, this work relates to these OWASP items: LLM01 Prompt Injection; LLM07 System Prompt Leakage; LLM02 Sensitive Information Disclosure; LLM06 Excessive Agency; LLM05 Improper Output Handling. Written attack strings are not published on this site.

How a prompt injection test runsFour steps: list the channels that reach the model; send an instruction through each; follow what it reached; check whether safeguards outside the model held.1ListEvery channelthat reachesthe model2SendAn instructionthrough each3FollowData and toolsit reached4CheckDid outsidelimits hold?
A generic outline. Ask each firm for its own method.

Why “fixed” is the wrong thing to ask for

The NCSC wrote in December 2025: “under the hood of an LLM there’s no distinction made between ‘data’ or ‘instructions’; there is only ever ‘next token’”. Its conclusion: “prompt injection attacks may never be totally mitigated in the way that SQL injection attacks can be”.

  • NCSC: “prompt injection attacks will remain a residual risk, and cannot be fully mitigated with a product or appliance; it needs to be risk managed through careful design, build, and operation”.
  • NCSC: “approach it by seeking to reduce the risk and the impact; if the system’s security cannot tolerate the remaining risk, it may not be a good use case for LLMs”.
  • NCSC: “design protections need to focus more on deterministic (non-LLM) safeguards that constrain the actions of the system”.
  • NCSC: “one technique to be wary of is any approach similar to ‘deny-listing’” (for example a filter for “ignore previous instructions”), and “beware any that claim they can ‘stop’ prompt injection”.

So ask a tester to show what an injected instruction can reach and whether your safeguards held, and ask the same of any product that says it blocks injection.

What a good finding looks like

  • Steps you can repeat: the channel used, the content placed in it, and what the system did, with the date and the model version if known.
  • The path to impact: what data, tool or action the injected text reached, and with whose permissions.
  • What did and did not stop it: which controls outside the model held, and which did not.
  • A change to the design, such as removing a permission or adding a confirmation step, rather than only a rewritten prompt.
  • A retest note: what to re-run after the change.
What a good prompt injection finding containsFive parts: steps to repeat; path to impact; what did and did not stop it; a design change; a retest note.What it containsOne findingSteps to repeatChannel, content, resultPath to impactData, tool or action reachedWhat stopped itAnd what did notA design changeNot only a new promptA retest noteWhat to re-run

A report that only says “the model was jailbroken” and shows no impact is a weak finding. See what a penetration testing report should contain.

Try the indirect case on your own tools

Our prompt-injection canary page carries a harmless, labelled instruction. Point an AI browser, agent or summariser you are allowed to use at it; if the tool follows the page’s text, it treats web content as instructions.

Next steps

Sources

Frequently asked

What is the difference between prompt injection and jailbreaking?

OWASP describes jailbreaking as a form of prompt injection in which the attacker’s input makes the model disregard its safety protocols entirely.

Can I test someone else’s AI tool for prompt injection?

Only with their written permission, like any other security test. Test your own systems, or ones you have a written scope for.

Will a filter that blocks “ignore previous instructions” stop it?

No. The NCSC says to be wary of deny-listing, and to beware any that claim they can stop prompt injection. Treat a phrase filter as one small layer at most.

Find firms that fit your test

Answer a few questions about what needs testing and why, and see matched firms with a link to each one’s contact page.

Match with firms