Penetration Testing Case Studies

Anonymized findings from live testing and bug bounty research in 2026. Each report shows what was broken, what we proved, where we stopped, and why an automated scanner misses it.

15
Case Studies
8
Critical Findings
7
High Findings
2026
Year of Testing

Browse the Case Studies

No company names, hostnames, account ids or requests. Sandbox and test environments are marked as such in each report.

CriticalBanking & Fintech

Developer portal proxy reached the internal admin API

A caller-controlled path in an API console reached the gateway admin API on the internal network. We read it and stopped before any write.

Read the case study
CriticalBanking & Fintech

Sandbox payment with an empty entitlement

An organization with no subscriptions still received a payment token, and consent accepted an account it did not hold. Sandbox only.

Read the case study
CriticalAutomotive

Pre-registration account takeover on a vehicle OEM

Two calls on two hosts set a password on an address before its real owner signed up. Proven on three mailboxes we controlled.

Read the case study
CriticalAI Systems

Default keys on a public voice-AI media server

A public media server still used its image defaults. With no account we joined a room we did not create and received audio frames.

Read the case study
HighConsumer Platforms

People-search: bulk export, hidden fields, unauthenticated notify

Four unauthenticated calls added up to bulk export, hidden fields and a public notify endpoint. The risk is the chain, not one call.

Read the case study
HighBanking & Fintech

Financing applications with no ownership check

Financing drafts had no ownership check, so a guest login could read and change another draft. Proven between two identities we created.

Read the case study
HighAutomotive

Cross-account consent read and write on a car manufacturer's identity portal

A path parameter split the edge filter from the service behind it and exposed another account's consent records. Both accounts were ours.

Read the case study
CriticalAutomotive

Unauthenticated order placement on a vehicle checkout

A checkout call placed an order with no login, only an offer id. One state change, confirmed by a read before and after, then we stopped.

Read the case study
CriticalBanking & Fintech

Sandbox payer login accepted any one-time code

A sandbox login accepted any six-digit code and issued a valid id token with unmasked contact fields. Sandbox authentication API only.

Read the case study
HighHosting & DevOps

Session signing key shipped in the JavaScript bundle

A fallback string in the public bundle was the production signing key. We forged a session for a chosen identity and wrote under it.

Read the case study
HighAI Systems

AI bookkeeper took the IBAN from hidden text in the invoice

Hidden text in a supplier PDF changed the account number an AI assistant extracted. Vendor AI test environment, no transfer was sent.

Read the case study
HighConsumer Platforms

Other users' profiles via a debug header and a cache

A debug header returned identity fields of other users, and the edge cache then served them to plain requests with no header.

Read the case study
CriticalHosting & DevOps

Public build server executed code with no login

A public build server gave its script console to anonymous callers. One non-destructive identity print, then we stopped.

Read the case study
CriticalHosting & DevOps

QR login confirmed someone else's waiting session

A confirm URL with no token completed QR login for whichever session was waiting. Proven end to end on a test account.

Read the case study
HighConsumer Platforms

Sportsbook priced the bet from odds the client sent

The bet API stored the odds the client sent, not the market price. Bets were priced at about 58x the market. Nothing settled.

Read the case study

What These Cases Show

Chains, not single bugs

Many of these reports are two or three normal-looking behaviors in a row. A scanner checks each step alone, so the risk never shows up.

Authorization needs two accounts

A missing ownership check appears only when one identity touches the object of another. That takes a second session, a write and a read back.

Proof, then a stop

We prove the issue with the least possible impact and write down what we did not do. Every report states its limit.

Want This Level of Testing on Your Application?

Tell us about your website, API or AI-built app. We start with a free initial security review.

Live Chat Support
Our website uses cookies, which help us to improve our site and enables us to deliver the best possible service and customer experience. See our policy Accept