P.K. SHARMA

Cyber security intelligence, AI governance, practitioner analysis

Free tool

Prompt injection pattern library

Prompt injection patterns by vector and defence, plus a checker for which apply to your system. Open data, nothing leaves your browser.

Prompt injection is the most consequential unsolved problem in applied AI security, and the reference material for it is scattered across a PDF, a bot-blocked knowledge base, and one vendor's product documentation. This library collects the patterns in one searchable place, gives each a stable identifier you can cite in a ticket or a control mapping, and puts the defence beside the attack every time.

Nothing leaves your browser: Everything here runs in your browser. There is nothing to submit and no account to create, and the page is served with a Content Security Policy whose connect-src 'none' rule blocks fetch, XHR, WebSocket, EventSource and sendBeacon. Open your developer tools, watch the network tab, and confirm it. A policy inside the page cannot stop you copying the result somewhere else, so what you do with it afterwards is yours to protect. Refreshing the page loses your work, unless you pressed Copy link to this result: that puts your ticks after the # in the address, which a browser never sends to a server.

Last reviewed:
Open data: download the full dataset as JSON

Tick what your system reads and does. The checker shows which of the patterns apply and which defences are worth starting with. It lists exposure; it does not test a live model, and nothing you tick leaves this page.

What it reads
What it does
How it is set up
0 ticked

Nothing ticked yet

Start with what the system reads, because that decides who can reach it. A system that retrieves documents or reads mail is exposed to people who never touch it.

Every pattern, by class

Each pattern has a stable identifier and its own page, so you can cite an individual technique in a finding, a ticket, or a control mapping. Identifiers are never reissued.

Indirect injection

Agentic and tool abuse

Use the data

The whole corpus is published as JSON under CC BY 4.0, currently version 1.1.0, reviewed 2026-10-08. Every defence carries the lever it works on, and the changelog is in the file. Map it into your own control framework, cite individual patterns by identifier, or build something better on top of it. Corrections and additions are welcome.

What has changed

A corpus that changes without saying so cannot be cited, so each release is dated. Identifiers are never renumbered: a pattern added later takes the next number.

  1. Version 1.1.0

    • Added PIP-019, instruction addressed to an automated analyser, after Cisco Talos published a count of malware carrying text for AI triage and a test of how far it steers verdicts.
    • Added PIP-020, summary and priority manipulation, after Barracuda reported a phishing email whose hidden text was aimed at the recipient's AI assistant.
    • Added PIP-021, self-propagating injection, the pattern behind worm-style prompt injection reports.
    • Every defence now carries a lever (what it works on), published in the data and usable as a filter.
    • Added the exposure checker: tick what your system reads and does, and see which patterns apply and which defences to start with.
    • Added source links to the patterns where a published report can be checked.
  2. Version 1.0.0

    • First release: 18 patterns in six classes, each with defences rated architectural, raises cost or do not rely on, and framework mappings only where the identifier is known correct.

Scope, and what is deliberately absent

This library describes mechanisms. It contains no working payloads, and it never will: the purpose is to help you recognise a class of attack and choose a control, which does not require a copy of the attack. Every pattern is published beside its defences, and each defence states its own strength honestly, because several widely recommended mitigations are partial and pretending otherwise is how organisations end up believing they are covered.

Framework mappings are asserted only where the identifier is known to be correct, and omitted where it is uncertain. A fabricated control reference is worse than a missing one.

Common questions

›What is prompt injection?

An attack where text supplied to a language model is treated as instructions rather than data. Because a model receives its instructions and its input in the same context, in the same format, with nothing marking which is which, text that arrives from anywhere can compete for authority with the instructions the developer wrote.

›What is the difference between prompt injection and jailbreaking?

Jailbreaking targets the model's own safety training: the attacker is the user, and the goal is to make the model produce something it was trained to refuse. Prompt injection targets an application built on a model: the attacker is usually not the user, and the goal is to subvert what the developer told the system to do. A jailbreak harms the person typing it. An injection harms whoever is using the application.

›What is indirect prompt injection?

Injection through content the system retrieves rather than text the user typed: a document, a web page, a support ticket, an email, a calendar invite, a tool result. It is the more serious form, because the attacker never needs access to the application and the victim never sees the payload.

›Can prompt injection be filtered out?

Not reliably. The payload is ordinary language, so there is no signature to match, and it can be rephrased without limit. Filtering reduces volume and is worth doing, but it cannot be a control you depend on. The durable mitigations are architectural: separate retrieved content from instructions, scope what the system may do with an answer, and reduce the privileges available when it is misled.

›Does a more capable model solve this?

It helps at the margin and changes nothing structural. Better models refuse more obvious attempts, which mostly raises the quality of the attempts. The exposure is set by what the system is permitted to do when it is fooled, and that is a deployment decision rather than a model one.

›How do I know which patterns apply to my system?

Use the checker at the top of the page. Tick what the system reads (documents, web pages, email, code, files from outside) and what it does (calls tools, remembers, passes work between agents, acts without approval). Each ticked item opens the vectors and the patterns that travel by them, and the result lists the patterns that apply and the defences to start with. It lists exposure from your answers. It does not test a live model, and it cannot see your prompts, permissions or monitoring.

›Can I use this data in my own work?

Yes. The full corpus is published as open JSON with a stable identifier per pattern and the lever each defence works on, so you can map it into your own control framework, cite individual patterns in findings, or build on it. Attribution is appreciated and not required.

When you need more than a tool

AI security assessment

Threat modelling, architecture review and adversarial testing of AI systems, mapped to the OWASP LLM Top 10, MITRE ATLAS and NIST AI RMF.

Read more

Share this tool

Free, no sign-up, and nothing you type leaves your browser.

Related analysis

← All free tools