Business logic
These flaws have no payload and no signature. The request is well formed and the server does what its code says; the code just does not enforce a rule the business assumed. Each scanner here turns one such rule into a claim (a balance cannot be spent twice, a price comes from the server, a policy compares the owner) and then looks for evidence that contradicts it: a count of responses, a model's reading of code, or a model's verdict on a live reply.
How this group works
One rule, four ways to test it. Step through the scanners and watch what each one treats as evidence. Only one of the four decides without a model.
1Four scanners, one idea. Each turns a rule the business assumed into a claim and looks for evidence against it. What differs is who supplies the evidence.
2Race conditions. Ten identical mutations at once over one connection. If two or more come back 200, 201 or 204, the check-then-act gap is real. A counted result, no model.
3LLM code review. A model reads high-priority route source, selected by the review triggers, and flags code that trusts the client. It sends nothing to the app. This is the one that catches amount: price.
4LLM business logic. A model writes an attack plan from source, the scanner runs it with two real logins, and a second model call judges the responses. Only a confirmed verdict becomes a finding.
5Semantic rule verifier. A model reads RLS migrations and Firebase rules for logic errors the structural analyzers cannot see. Every finding gets a fixed 0.70 confidence. Without an API key it does not run.
Scanners in this group
Race conditions
Check-then-act on two lanes, N identical requests over one connection, and the row lock or atomic update that closes the gap.
LLM review and AI fixes
Several triggers choose which routes and files are worth the tokens, what the model catches that regex cannot, and the three ways a fix is delivered.
LLM business logic
A model plans attacks from your source, the scanner runs them with two logins, a second call judges the replies. What is sent, what comes back, and what is never checked.
Semantic rule verifier
A model reads RLS migrations and Firebase rules for logic errors: the wrong column, uneven coverage, broken tenant scoping. Parsed, capped, fixed at 0.70 confidence.
At a glance
| Scanner | What it looks at | What it reports | Severity | Needs |
|---|---|---|---|---|
| Race condition scanner | Mutations the authenticated crawl saw succeed with a body | An endpoint where two or more identical concurrent requests succeed | High | URL; credentials; special DAST scanner |
| LLM code reviewer | High-priority route source chosen by the review triggers | Missing ownership checks, price manipulation, payment races, auth bypass, business rule violations | Varies | Repository; an LLM API key (about $5 to $8 per code-only scan, per its doc) |
| LLM business logic scanner | Up to 30 business-logic source files, up to 50 discovered endpoints, then live responses | Attack plans the judge confirmed against the running app | High to Critical (judge's choice) | Repository; URL; two logins; authenticated or full mode; an LLM API key |
| Semantic rule verifier | .sql files with RLS policies; firestore.rules, storage.rules, database.rules.json | Logical flaws in security rules, as RLS misconfiguration | Low to Critical (the model's choice) | Repository; an LLM API key |
Why this class matters
Business logic bugs are the most impactful and the hardest to detect. There is no regex for "this payment flow has no idempotency". They are specific to what your app does, they often span several steps, and the server behaves exactly as written. A race lets one balance be spent twice, a client-set price buys the enterprise plan for a cent, and a policy on the wrong column looks protective while it is not. All four scanners here work without a payload; the first three need either two requests at once or a reader that understands what the code is for.
Starbucks (2015). Researchers showed a race condition in the gift card system that duplicated balances by transferring the same balance to multiple cards at once. Docker runc CVE-2019-5736. A TOCTOU race let a malicious container overwrite the host runc binary and gain root on the host. Facebook (2013). The ability to delete any photo came from the API checking that the photo id existed rather than that the requester owned it.