Skip to main content
Coverage class · AI applications

LLM penetration testing targets the application around the model

A model can be persuaded to produce almost any sentence, and demonstrating that is neither difficult nor useful. It becomes a security finding at the point where something acts on it — output rendered into a page, inserted into a query, or handed to a tool with permissions of its own. That line is what this class is worked to.

Class and boundary

Three forms, one deliberate exclusion, and a page that is not this one

The exclusion is the important card. It is the first thing a specialist will ask about, and answering it is what makes the other three answerable.

Form one

Prompt injection and jailbreak testing

Direct injection from somebody using the application, and indirect injection through whatever the application retrieves and treats as trustworthy — a document, a page, a record, a message. The second reaches applications nobody is attacking directly.

Form two

Model endpoint and API security

The interface in front of the model: authentication, what it will accept, rate and cost limits, what leaks through it, and whether the model behind it can be extracted through the endpoint.

Form three

Agentic systems

Tool misuse, the autonomy boundary, privilege escalation through what a tool is permitted to do, and chaining nobody designed. The newest of the three and the one this class is most opinionated about.

The other meaning

Using autonomy to test software

B-52 is itself an agentic penetration testing platform. That is the opposite job from this class — testing software with autonomy, rather than using autonomy to test software — and it has its own page.

Adjacent

The endpoint, as an interface

The interface in front of a model is an API, and everything the API class works applies to it — authentication, what it accepts, rate and cost limits, what leaks through. Form two is that work done with the model in mind.

Not claimed

Model provenance and training data

Where the model came from, and whether its training data was interfered with, are outside this class. Saying so is not a caveat; it is what makes the rest of the page checkable.

Two jobs, four words

The ambiguity is not yours to resolve, so this page resolves it

The same phrase describes two opposite pieces of work. One is using autonomy to test software, which is what B-52 is and what the rest of this site is about. The other is testing software that has a model inside it, and in the third form, software that can act on its own. This page is the second. Keeping them apart matters for more than tidiness: a buyer who arrives at the wrong one gets a confident, detailed answer to a question they were not asking, and finds out several weeks later.

Who this page is for

Two readers, and the gap between them is the problem

Both are answered here. Where they should start is not the same.

01 Shipping

The team that put a model into a product this quarter

What brought them
A feature that reached production faster than any process around it, with a tool list that grew every sprint.
What they need
To know what the application can be made to do, not what the model can be made to say. Start at the worked example and the depth table.
What they check first
Whether the assessment covers what the application retrieves, or only what a user types into it.
02 Governance

The team asked to sign off on it

What brought them
An approval request for something nobody in the room has an existing control framework for.
What they need
Findings that land in a vocabulary a risk committee already uses. Start at the methodology block.
What they check first
What the assessment does not cover, which is stated on the card above rather than discovered later.

The run

Six phases, and the sixth is where this class is decided

Every phase matters. On this class the last one does the work that keeps the report from being a collection of transcripts.

The line that decides everything

A model saying something odd is not a finding

A model can be talked into producing almost any text, and a report full of transcripts demonstrating that is a product-quality document rather than a security one. The point at which it becomes a security finding is the point at which something acts on the output: rendered into a page, inserted into a query, passed to a command, written to a path, or handed to a tool that holds permissions of its own. Everything in this class is worked to that line. It is also why the most valuable output of an engagement is frequently a permission change rather than a change to an instruction.

The boundary

What the run may ask the application, and what it may cause it to do

Two different permissions, and on this class they are worth agreeing separately. Asking an application to do something and letting it happen are not the same act.

What the run may ask the application, and what it may cause it to do
StateWhat it meansWhat follows
Causing the application to act on the outside world Where a tool sends mail, moves money, writes to a record or calls another system, establishing that it can be reached is the finding. Letting the call complete is the next act. Stops and waits, in writing.
Reading real user data through the application What the application will disclose is proved with a single record. Collecting what it would disclose next is a separate decision. Stops and waits, in writing.
Persistence and movement past the entry host Where output reaching a command or a query yields a foothold on the infrastructure behind the application, going further is an internal network question. Stops and waits, in writing.
Everything else inside the authorised scope Terminal Mapping the retrieval and tool surface, direct and indirect injection, endpoint and disclosure work, chaining, and reporting. Runs without asking.
Key
  • Requires your written approval before B-52 proceeds
  • Authorised by the scope you signed off
  • TerminalNo state follows this one

On the symmetry

The boundary this class tests is the one B-52 runs under

The third form asks what an agent is permitted to do without being asked again — which is the same question this platform answers about itself on every engagement: a scope signed in writing, three actions that stop and wait, and a record of what was permitted and what was refused. That is not a rhetorical parallel. It is why the autonomy boundary is the part of this class we are most opinionated about, and it is why the scope agreement asks separately what the application may be caused to do rather than folding that into what may be sent to it.

Against the published list

All ten entries, and what this class does with each

The current OWASP list for LLM applications, 2025 edition. Two of the ten are outside this class, and naming which two by number is the point of the table.

EntryWhat this class does with it
LLM01 Prompt injection The first form. Direct injection from a user, and indirect injection through content the application retrieves and treats as instruction rather than as data.
LLM02 Sensitive information disclosure What the application will reveal about its own data, its other users, and the systems behind it — through the interface and through the endpoint.
LLM03 Supply chain Not claimed. Where the model came from is outside this class, and it is stated here rather than left to be discovered.
LLM04 Data and model poisoning Not claimed. Training-data and fine-tuning integrity are outside this class.
LLM05 Improper output handling Where model output reaches a browser, a query, a command or a file path. This is the entry that turns an injection from a curiosity into a finding.
LLM06 Excessive agency The third form. What the tools can do, what the model may invoke without being asked again, and what a chain of invocations reaches.
LLM07 System prompt leakage What the application will disclose about its own instructions — and, more usefully, what those instructions were being relied on to enforce.
LLM08 Vector and embedding weaknesses Where a retrieval store is inside the authorised scope, it is assessed as a data store: what it will return, to whom, and what was permitted to write into it.
LLM09 Misinformation Assessed where the application acts on its own output. A wrong answer shown to a person is a product question; a wrong answer that triggers an action is this one.
LLM10 Unbounded consumption The second form. What the endpoint will accept, at what rate, and what it costs whoever is paying — demonstrated rather than driven to exhaustion.

LLM01 Prompt injection

What this class does with it
The first form. Direct injection from a user, and indirect injection through content the application retrieves and treats as instruction rather than as data.

LLM02 Sensitive information disclosure

What this class does with it
What the application will reveal about its own data, its other users, and the systems behind it — through the interface and through the endpoint.

LLM03 Supply chain

What this class does with it
Not claimed. Where the model came from is outside this class, and it is stated here rather than left to be discovered.

LLM04 Data and model poisoning

What this class does with it
Not claimed. Training-data and fine-tuning integrity are outside this class.

LLM05 Improper output handling

What this class does with it
Where model output reaches a browser, a query, a command or a file path. This is the entry that turns an injection from a curiosity into a finding.

LLM06 Excessive agency

What this class does with it
The third form. What the tools can do, what the model may invoke without being asked again, and what a chain of invocations reaches.

LLM07 System prompt leakage

What this class does with it
What the application will disclose about its own instructions — and, more usefully, what those instructions were being relied on to enforce.

LLM08 Vector and embedding weaknesses

What this class does with it
Where a retrieval store is inside the authorised scope, it is assessed as a data store: what it will return, to whom, and what was permitted to write into it.

LLM09 Misinformation

What this class does with it
Assessed where the application acts on its own output. A wrong answer shown to a person is a product question; a wrong answer that triggers an action is this one.

LLM10 Unbounded consumption

What this class does with it
The second form. What the endpoint will accept, at what rate, and what it costs whoever is paying — demonstrated rather than driven to exhaustion.

Three of them, worked

Direct, indirect, and chained

The first is the one everybody tests. The second is the one that reaches applications nobody is attacking. The third is the one that does something.

01 Direct

Input somebody typed

How it arrives
A person using the application types something the application was not written to expect.
Why it is the easy case
The input is in the transcript, the surface is small, and a filtering layer sees it on the way through.
What the run does
Works it in full, and treats it as the floor rather than the assessment.
02 Indirect

Input the application fetched

How it arrives
A document, a page, a record or a message that the application retrieves and places in front of the model as context.
Why it is the hard case
Nobody attacked a user. They wrote something, somewhere the application would eventually read it, and waited.
What the run does
Maps what the application retrieves and who can write to each of those sources — which is the scope question most assessments of this class never ask.
03 Chained

One tool call reaching the next

How it arrives
An instruction that reaches a tool the application is permitted to invoke, whose output becomes the reason to invoke another.
Why it is the expensive case
Each tool was authorised on its own, by somebody reasoning about it on its own.
What the run does
Works the permissions rather than the prompts, because a chain is closed by changing what a tool may do and not by adding a sentence asking it not to.

Methodology

The standards an LLM application assessment is worked against

Two of these are pinned to a version and two are deliberately not. Each row says which it is and why, because on this subject a stale citation is the fastest way to lose a technical reader.

StandardVersionWhat it carries here
OWASP Top 10 for LLM Applications 2025 edition, released 12 March 2025. Read 2026-09-14 The category every finding is reported under. The table above works through all ten entries and marks the two this class does not cover.
The current edition, and the source of the entry numbers used on this page.
MITRE ATLAS Current release. Read 2026-09-14 The adversarial technique vocabulary for AI systems — the counterpart to ATT&CK, and where the agentic techniques live.
Deliberately not pinned to a number: ATLAS publishes on a rolling cadence, so the report names the release each finding was mapped against rather than this page naming one that goes stale between engagements.
NIST AI RMF AI 100-1, 26 January 2023, with the Generative AI Profile AI 600-1, 26 July 2024. Read 2026-09-14 The governance vocabulary a report has to land in when its reader is a risk committee rather than an engineering team.
AI 100-1 is under revision and no version 2.0 has been published, so 1.0 is what is cited.
CVSS v4.0, November 2023. Read 2026-09-14 The severity vector on findings that have one — an injection that reaches a query does.
Not applied to everything. A model producing an undesirable sentence has no vector, and scoring one as though it did would be inventing precision.

OWASP Top 10 for LLM Applications

Version
2025 edition, released 12 March 2025. Read 2026-09-14
What it carries here
The category every finding is reported under. The table above works through all ten entries and marks the two this class does not cover.

The current edition, and the source of the entry numbers used on this page.

MITRE ATLAS

Version
Current release. Read 2026-09-14
What it carries here
The adversarial technique vocabulary for AI systems — the counterpart to ATT&CK, and where the agentic techniques live.

Deliberately not pinned to a number: ATLAS publishes on a rolling cadence, so the report names the release each finding was mapped against rather than this page naming one that goes stale between engagements.

NIST AI RMF

Version
AI 100-1, 26 January 2023, with the Generative AI Profile AI 600-1, 26 July 2024. Read 2026-09-14
What it carries here
The governance vocabulary a report has to land in when its reader is a risk committee rather than an engineering team.

AI 100-1 is under revision and no version 2.0 has been published, so 1.0 is what is cited.

CVSS

Version
v4.0, November 2023. Read 2026-09-14
What it carries here
The severity vector on findings that have one — an injection that reaches a query does.

Not applied to everything. A model producing an undesirable sentence has no vector, and scoring one as though it did would be inventing precision.

Before a run starts

What is fixed in writing, and what is never in scope

The scope agreement for an LLM application engagement As of 2026-09-14
  • The application, and which of its interfaces are in scope — the conversational surface, the endpoint behind it, or both.
  • What the application retrieves and treats as trustworthy, and who is able to write into each of those sources. Indirect injection arrives through content, not through a user.
  • Which tools the application can invoke and what each is permitted to do. This list is what decides how much the third form can find.
  • What the run may cause the application to actually do, agreed separately from what it may be asked to do.

Deliberately excluded

  • Model provenance and training-data integrity, which are outside this class and named as such on the page.
  • Physical, hardware and wireless testing, which are out of scope for the platform in every class.
  • Denial of service, which is not performed against a production system — and on this class that covers driving consumption to exhaustion rather than demonstrating that it is unbounded.

Per finding

What arrives with every finding

Always

The input, in full

Exactly what was sent — including the retrieved content, where the injection arrived through something the application fetched rather than through something a person typed. A paraphrased prompt is not reproducible.

Always

What the application did next

Not what the model said. What the application did with what the model said, and what that reached. That is the finding; the transcript is the evidence for it.

Agentic findings

Which tool, holding which permissions

The tool that was reached and what it was authorised to do — so remediation can be a permission change rather than another sentence added to an instruction that has already failed once.

Always

The classification

The OWASP LLM entry at the 2025 edition, the ATLAS technique, the CWE where one applies, and a CVSS v4.0 vector where the finding has one.

Fully autonomous only

An independent automated cross-check

In the model with no auditor in it, findings pass a second automated gate before they are reported. It is a check on top of the proof, not a substitute for it.

Where this sits

Against the three things usually bought instead

No vendor is named here — these are categories of work. Two of them are worth having and neither of them is this.

A guardrail or filtering layerModel red-teamingTesting the application onlyB-52
What it is looking at Inputs and outputs, against rules. The model’s behaviour, against a taxonomy of undesirable output. The application, with the model treated as a box that returns strings. The application, the endpoint behind it, and what its tools are permitted to do.
Reaches indirect injection Some, where the retrieved content passes through it. Not its object. It is testing a model, not a retrieval path. Only where somebody thought to write into what the application fetches. Worked as a form in its own right, starting from who can write to each source.
Reaches excessive agency No. It does not see the tool call. No. The tools are not part of the model. Where the tools happened to be in scope. Worked from the tool permissions outward, which is also where the fix is.
What a finding costs you to confirm Not applicable; it blocks rather than reports. Judgement about whether the behaviour matters in your product. Usually nothing; it was proved. Nothing. The input, the output and what happened next arrive together.
Cadence Continuous. When the model changes. When it is scheduled. The interval you set, or the pipeline that built the release.
Whose signature it carries None. The team that ran it. The firm that ran it. Security Brigade’s, in the two models with an empanelled auditor in them.

What it is looking at

A guardrail or filtering layer
Inputs and outputs, against rules.
Model red-teaming
The model’s behaviour, against a taxonomy of undesirable output.
Testing the application only
The application, with the model treated as a box that returns strings.
B-52
The application, the endpoint behind it, and what its tools are permitted to do.

Reaches indirect injection

A guardrail or filtering layer
Some, where the retrieved content passes through it.
Model red-teaming
Not its object. It is testing a model, not a retrieval path.
Testing the application only
Only where somebody thought to write into what the application fetches.
B-52
Worked as a form in its own right, starting from who can write to each source.

Reaches excessive agency

A guardrail or filtering layer
No. It does not see the tool call.
Model red-teaming
No. The tools are not part of the model.
Testing the application only
Where the tools happened to be in scope.
B-52
Worked from the tool permissions outward, which is also where the fix is.

What a finding costs you to confirm

A guardrail or filtering layer
Not applicable; it blocks rather than reports.
Model red-teaming
Judgement about whether the behaviour matters in your product.
Testing the application only
Usually nothing; it was proved.
B-52
Nothing. The input, the output and what happened next arrive together.

Cadence

A guardrail or filtering layer
Continuous.
Model red-teaming
When the model changes.
Testing the application only
When it is scheduled.
B-52
The interval you set, or the pipeline that built the release.

Whose signature it carries

A guardrail or filtering layer
None.
Model red-teaming
The team that ran it.
Testing the application only
The firm that ran it.
B-52
Security Brigade’s, in the two models with an empanelled auditor in them.

On model red-teaming

If you did not train it, that work was done by somebody else

Testing a model against a taxonomy of undesirable output is a real discipline, and it belongs to whoever built or fine-tuned the model. Where you bought the model rather than trained it, that work has already been done by people with access you do not have, and repeating it tells you very little about your own product. What nobody has done is assess what your application does with that model — what it retrieves and trusts, what it renders, what it can be made to invoke, and what happens when the answer is acted on. That is what is left over, and it is the whole of this class.

Filing

What an assessment of this class is evidence for

Coverage is identical across the three delivery models. What differs is whose signature the report carries.

NIST AI RMF

A vocabulary the committee already has

Findings map into the Govern, Map, Measure and Manage functions of AI 100-1 and into the Generative AI Profile, so a technical report reaches a risk committee without being translated on the way.

Existing scope

An application with a model in it is still an application

Where a testing cycle names applications and APIs, this is one of them — and the endpoint in front of a model is an API. The obligation reaches it through the scope that already exists.

Remediation

The state a finding closes in

On this class a finding usually closes on a permission change or an output-handling change rather than on a patch, and it closes on a retest where the same input no longer produces the same action.

Delivery

Choosing a model for a filing

Where the report goes to a regulator or an assessor, start with the expert-verified model.

Worked example

A chain where nobody attacked anybody

Four steps. No user was targeted, no credential was stolen, and nothing in the transcript looks unusual.

A chain from an LLM application, read step by step and then in sequence
LinkAloneIn sequence
1 A document the application reads A file, uploaded by somebody entitled to upload files.The application retrieves it and places its contents in front of the model.
2 An instruction nobody typed A sentence inside that document.It arrives as context, indistinguishable from the rest of the context.
3 A tool the application may invoke A function with a name and a permission.The instruction asks for it, and nothing between the two disagrees.
4 What the tool did A successful call.The action happened. Each permission in the chain was granted separately, by somebody reasoning about it separately.
A chain from an LLM application, read step by step and then in sequence Reconstructed from the class as it is worked; sector, technology and every identifier are generalised. The final step completes only where the scope authorised the application to be caused to act.

Measured

Benchmarked against our own assessors

B-52 and Security Brigade’s expert assessment team were run against the same targets in parallel and their findings pooled into one set, each item counted once. B-52 reached 90–95% of that set. The figure describes the platform rather than any single coverage class, and it is stated here for the reason it is stated everywhere on this site: it is the measurement behind the claim that autonomy is not a compromise, and a claim of that size should arrive with the thing that was measured.

Bring the tool list, from $500

One scan is one application or target, and the entry tier is $500. The list of tools your application may invoke is what decides how much this class can find, so it is the thing worth bringing to the conversation.