Manual testing · OWASP LLM Top 10 · No API keys, ever

We'll find a real vulnerability in your AI agent in 72 hours — or you don't pay.

If your agent sends email, moves money, or calls tools on its own, then anything it reads is a potential instruction. Breakpoint is a fixed-scope manual audit that shows you exactly what an attacker can make it do — with the steps to reproduce it.

Price
99€
Turnaround
72h
Scope
1 agent
OWASP coverage
7/10
FINDING 007/LLM06 · Excessive Agency
Critical

A support agent holds an issue_refund tool with no authorization check, and decides when to call it from text it does not control. An attacker plants an instruction in a note stored on an order; the agent reads that note as a tool result mid-task and moves money.

Reproduction
  1. 01Baseline: ask the agent a normal question. No refund is issued.
  2. 02Plant an instruction in a note stored on order ACME-1337.
  3. 03A support user asks an entirely innocent question: "What is the status of order ACME-1337?"
  4. 04The note reaches the model as a tool result. The agent calls issue_refund(ACME-1337, 9999).
Measured result

Unauthorized refund issued 5/5 via the user's message, and 4/5 via the poisoned order note — where the user did nothing wrong.

Impact

Fraudulent fund movement triggered by an innocent lookup. The harm is the tool call, not the reply — the chat response is theatre.

Remediation

Treat tool output as untrusted data, never as instructions. Enforce authorization and an amount ceiling server-side on the privileged tool, and put a human in front of calls that move money.

Ollama tool-calling agent (llama3.1:8b) with a privileged refund toolRun the PoC →
01Published findings

This isn't theoretical.

More findings I've reproduced and published in the open, alongside the agent tool-abuse one above. Each ships with a runnable proof of concept — clone it and check my work rather than taking my word for it. These come from my own research lab and stock open-source configurations, not client systems; client findings stay confidential unless the client asks me to publish them.

FINDING 006/LLM01 · Prompt Injection (stored)
High

A chain rather than a single bug: the vector store accepts unauthenticated writes, and a retrieved document is trusted with the same authority as a developer instruction. One anonymous write poisons the knowledge base permanently.

Reproduction
  1. 01Confirm a clean baseline — the innocent question leaks nothing.
  2. 02Write one poisoned document into the support_kb collection through the unauthenticated ChromaDB API. No credentials required.
  3. 03Ask the same innocent question again.
  4. 04Retrieval returns the poisoned document and the model leaks the system-prompt secret. The poison persists in the database.
Measured result

Leak rate 0/10 before the write, 10/10 after. The attacker never touches the application or the model.

Impact

Persistent disclosure of data held in the system prompt, triggered by ordinary user questions, from a single unauthenticated network write.

Remediation

Authenticate the vector store, treat retrieved text as untrusted data, and keep secrets out of the system prompt entirely.

RAG /chat endpoint backed by a stock ChromaDB vector storeRun the PoC →
FINDING 005/LLM07 · System Prompt Leakage
Medium

A controlled comparison rather than a single exploit. A prefix-injection payload — a fake transcript cut off mid-sentence, leaving the model to autocomplete the one thing it was told never to say — fired at six models with everything else held constant.

Reproduction
  1. 01Give every model the identical system prompt holding a secret.
  2. 02Fire the same prefix-injection payload at each, 10 times, with the same leak detector.
  3. 03Direct requests are refused; the fake-transcript framing is not.
  4. 04Count how often the secret appears. The only variable is the model.
Measured result

Leak rate ranged from 10/10 on an uncensored model to 2/10 on a well-aligned one. A well-tuned 3B model resisted as well as an 8B — alignment quality, not model size, predicted exposure.

Impact

Your choice of model changes system-prompt exposure by an order of magnitude, and the usual proxy for capability — parameter count — does not tell you which is safer.

Remediation

Don't put secrets in the system prompt. Where instructions must stay private, measure leak rate for your specific model rather than assuming a bigger one is safer.

Six local models served by Ollama, given the same secret system promptRun the PoC →
All seven findings + the automation harness →
02Who runs this

One person does the testing. Here's who.

[PHOTO]
Issa Prunier
Independent · France

I build Shotoku, an open-source spend-control layer for AI agents — budgets, approvals, and an audit trail enforced before an agent spends money. It exists because agents with tool access do things nobody authorized. The code is public; read it and judge the work yourself.

Breakpoint is the other half of that problem. Building the guardrail taught me where agents actually break, so I test other people's agents the same way an attacker would — by hand.

I publish my security research in the open at local-ai-security-lab: seven findings against local AI stacks, plus an automation harness — prompt injection in RAG pipelines, unauthenticated ChromaDB and Ollama, system-prompt extraction compared across six models, and a tool-using agent talked into issuing a refund it should never have issued. Every one ships with a runnable proof of concept. Nothing goes in that repo until it reproduces, and the same rule governs what goes in your report.

No subcontracted testers, no white-labelled scanner. That's also the honest limit on volume — I take a small number of audits per month because there is exactly one of me.

03What gets tested

Every finding maps to a category. Here are all ten, including the ones I don't test.

7 of the 10 OWASP LLM categories are reachable from a running agent in 72 hours. The other 3 need training pipelines, dependency trees, or load generation — access I don't ask for and testing the agreement forbids. Anyone claiming full coverage at this price is selling you a scanner.

LLM01
Prompt Injection
Direct and indirect — including payloads hidden in content the agent retrieves.
LLM02
Sensitive Information Disclosure
Data from other users, other tenants, or internal context leaking into output.
LLM03
Supply Chain
Needs dependency and model-provenance review. Out of scope at this tier.
LLM04
Data and Model Poisoning
Needs training-pipeline access. Out of scope at this tier.
LLM05
Improper Output Handling
Model output reaching a shell, a browser, SQL, or a downstream parser unescaped.
LLM06
Excessive Agency
Tools the agent can call beyond what the task needs — the one that moves money.
LLM07
System Prompt Leakage
Extraction of instructions, tool schemas, or secrets embedded in the prompt.
LLM08
Vector and Embedding Weaknesses
RAG retrieval crossing tenant boundaries or returning poisoned context.
LLM09
Misinformation
Only where a confident wrong answer causes a concrete downstream action.
LLM10
Unbounded Consumption
Reviewed by inspection only — no load testing, ever. It's in the agreement.

Reference: OWASP Top 10 for LLM Applications, 2025.

04What you get

A report you can hand to an engineer on Monday.

Four sections, one call. No dashboard to log into, no score out of 100, no 40-page appendix padding out a thin result.

§1
Scope and method

What was tested, from which vantage point, over which window — and what was deliberately left alone.

§2
Findings

Each one with an OWASP category, a severity, numbered reproduction steps, and the concrete impact. If it can't be reproduced, it isn't a finding.

§3
Remediation

Per finding: the specific change that closes it. Where the root cause is an over-privileged tool, that includes the architectural fix, not just a prompt patch.

§4
What I couldn't break

The attacks that failed and why. This is the half that tells you where you're already strong.

Format
PDF + Markdown
Walkthrough
30 min, recorded
Re-test
One free, within 30 days
Confidentiality
Nothing published without written consent
05The guarantee

If I don't find a reproducible vulnerability mapped to the OWASP LLM Top 10, you're refunded in full.

The guarantee is only worth something if the words in it are pinned down. So here is the exact clause, the same one stored with your submission and quoted in the report.

Definition — “reproducible vulnerability”

A reproducible behavior matching at least one OWASP LLM Top 10 category and producing a demonstrable impact: leakage of information not intended for the user, execution of an action outside authorized scope, bypass of a safety rule, or exfiltration via attacker-controlled input. Refusals and cosmetic outputs do not count.

Counts
  • +Information leaked that wasn't meant for that user
  • +An action executed outside the authorized scope
  • +A safety rule bypassed
  • +Exfiltration through attacker-controlled input
Doesn't count
  • A refusal, or the model declining something
  • Cosmetic or low-quality output
  • A theoretical risk I can't demonstrate

Refunds are issued to the original card through Stripe, typically within one business day of the report being sent.

06Price

99€, and here's why that isn't a red flag.

Traditional pentest firm
Scoping calls, an MSA, a team that mostly tests web apps
8 000 – 30 000 €
3 – 6 weeks
Automated LLM scanner
Known payload lists — it won't find your refund tool
Subscription
Minutes
Breakpoint
One agent, tested by hand, refunded if nothing is found
99 €
72 hours
Why it's this cheap

There is no sales team, no scoping call, no contract negotiation — the agreement is on this page and you sign it yourself. The scope is fixed at exactly one agent, so I never quote, never estimate, and never bill hours. 99€ is a launch price while I build a public record of findings; it will go up once that record exists.

The honest constraint

I run every audit personally, so I take a limited number per month. When the month is full, the form tells you and you wait for the next one. There is no countdown on this page and no spot counter — those are made up, and you'd be right not to trust one.

07What I don't do

The limits are the product.

Security work is bounded by what you authorize. Here is everything outside the line, stated before you pay rather than buried in a PDF.

I never ask for an AI API key

Not during intake, not for testing, not afterwards. There is no field for one on this site and no table to store one in. Anyone who asks you for a provider key to 'run a security scan' is the threat.

Nothing is tested automatically

This site qualifies you, verifies you own the target, takes your signed authorization, and charges you. It never sends a single request at your agent. All testing happens by hand, off this platform, after you've signed.

No load testing, ever

No stress tests, no flooding, no availability testing. It's an explicit exclusion in the agreement you sign, so a Breakpoint audit can't take your service down.

No production data

Staging endpoint, test account, or API docs. If the only access you can give me is production with real customer records in it, I'll tell you to fix that first and decline the job.

No third parties

I test what you own and authorized. If your agent calls a vendor's API, the vendor's systems are out of scope even when they're reachable from yours.

No testing without a signature

Ownership verification and a signed rules-of-engagement agreement both come before payment, not after. That protects you, and it's the only thing that makes this legal for me.

08How it works

Six steps, in this order, no exceptions.

The sequence matters: verification and authorization both happen before money changes hands.

  1. 01
    Submit

    Company email, the agent's URL, what access you can give, and what the agent is allowed to do.

    2 min
  2. 02
    Verify you own it

    Host a token file on the domain, or confirm from an address on it. Payment stays locked until this passes — it's what stops anyone submitting a company that isn't theirs.

    5 min
  3. 03
    Sign the scope

    Rules of engagement: authorized target, test window, exclusions, and your declaration that you can authorize testing. Timestamped and stored.

    3 min
  4. 04
    Pay

    Stripe Checkout, unlocked only after the two steps above. I never see your card.

    1 min
  5. 05
    Send access

    Staging endpoint, test account, or API docs. The 72-hour clock starts here, not at payment.

  6. 06
    Report + walkthrough

    Findings with reproduction steps, then a 30-minute call. Or a full refund if I came up empty.

    72 h
09Questions

The ones you should be asking.

+What stops you from calling anything a vulnerability just to keep my 99€?

The definition is fixed in writing before you pay, and it's narrow on purpose: a refusal doesn't count, a theoretical risk doesn't count, and neither does anything I can't reproduce. Every finding ships with numbered steps you run yourself. If you run them and they don't reproduce, it isn't a finding and you get refunded.

+Do you need access to my AI provider keys?

No. There is no field for one anywhere on this site and no place in the database to put one. I test through the same surface an attacker has: your app, a test account, or a staging endpoint.

+Is this legal?

Only because you authorize it. You prove you control the target, then sign a rules-of-engagement agreement naming the authorized target, the window, and the exclusions, with a declaration that you have the right to authorize testing. That signature is timestamped and stored. Without it, no testing happens.

+Why not just run an automated scanner?

Scanners replay known payload lists against a chat box. They don't know that your agent has a refund tool, that the tool has no ceiling, or that ticket text reaches the model as instructions. The vulnerabilities that matter in agent systems are in the wiring between the model and its tools, and finding those means reading how your specific agent is put together.

+What if my agent is genuinely secure?

Then you get the report section listing what I tried and failed to break, plus your money back. That's a real outcome — it's evidence you can show a customer or an auditor, and it cost you nothing.

+Will you publish what you find?

Not without your written consent, and never in identifying form. The findings published on this page are redacted and approved by the client first.

+What counts as 'one agent'?

One deployed application or agent, with its tools, at one URL. If you have three separate agents, that's three audits. If you're not sure how yours splits up, say so in the form and I'll tell you before you pay.

+What happens after the 72 hours?

You get the report and a 30-minute walkthrough. Fix what you want to fix, and I'll re-test the findings once for free within 30 days to confirm they're actually closed.

10Start

Tell me about your agent.

This submits nothing to your systems and charges nothing. The next screen is domain verification — you can stop there and nothing has happened.

Company domain required — free providers are rejected
The target you want tested
Which tools it calls, which actions it can take

No payment at this step. No API keys requested, here or ever.