Can AI Pentesting Find Business Logic Flaws?
TL;DR
- ✓Agentic pentesters can find IDOR, BOLA, BFLA, cross-tenant access, skipped workflow steps, and parameter tampering when they can test as more than one user.
- ✓They can test company-specific rules, like which custom roles can reach which data, once those rules are available to them through your instructions, documentation, or source code.
- ✓In a June 2026 benchmark on a real open-source app, Strobes AI reported 45 validated findings with zero false positives. One was an admin account takeover the agent completed in 189 seconds, because a login code had no attempt limit.
- ✓We recommend a human review race-condition findings and business impact calls before they set your fix priorities.
- ✓Don't take any vendor's word for it, including ours. Plant a known logic bug in staging and see whether the agent finds it, with proof you can replay.
Yes, AI pentesting can find business logic flaws, including common ones like IDOR and BOLA. What it can't do is check a rule it has no way to learn, and that one limit shapes almost everything below.
AI pentesting here means agentic pentesting: an AI agent that plans its own tests, sends real requests to your app, reads the responses, and decides what to try next. In this post, we cover which logic flaws these agents can catch today, what they need from you, where they still fall short, and how to check a vendor's claims yourself.
What decides whether an agent can find a logic flaw?
An AI agent can find a logic flaw only when it knows what the app is supposed to do. That's the first requirement, but not the only one. The agent also has to reach the right workflow, stay logged in, and send the right sequence of requests.
Some rules are true for almost every app, so the agent can work them out on its own. If user A and user B share no team, workspace, or delegated access, user A shouldn't be able to read user B's files. A one-time code shouldn't allow unlimited guesses. A regular user shouldn't be able to call an admin endpoint. When an app breaks one of these rules, the agent can spot it, because it already knows the expected behavior.
A second set of rules comes with the type of app. An app with tenants shouldn't let tenant A's invite work in tenant B. An app with MFA shouldn't let the API or a password reset skip the second factor. Strobes agents work out what kind of app they're testing first, so they can apply these rules too.
A third set of rules only exists inside your company. Maybe only the auditor role can export audit logs, read-only API tokens can't change settings, or support staff can open a customer's workspace only while a support ticket is open. Unless the agent can learn these rules from your instructions, documentation, or source code, it has no way to know that breaking one is a bug.

Research backs this up. In Anota, a system from CISPA and the Max Planck Institute for Security and Privacy presented at NDSS 2026, developers write short annotations describing how their app should behave. A monitor then flags any behavior that breaks those annotations while a fuzzer exercises the app. That setup found 22 previously unknown vulnerabilities, and 17 of them received CVEs. Anota doesn't use AI, but it shows the principle this post rests on: once expected behavior is spelled out, logic flaws become findable.
What is a business logic flaw?
A business logic flaw is a gap in how an app enforces its own rules. Every request is well formed and the code runs as written. Even so, a user can do something the design never intended, like reading another account's files by changing an ID or skipping a required MFA step. MITRE groups these flaws under >CWE-840, Business Logic Errors, and the OWASP Web Security Testing Guide covers them in its business logic testing section (WSTG-BUSL).
Why do scanners miss them?
General-purpose scanners do more than match strings. They send attack requests and analyze the responses to confirm many kinds of flaws. Their gap with logic flaws is context: they don't know your app's rules or how state should change across a multi-step workflow, and many logic attacks use values that look completely normal.
Take an API that lets users update their own profile. An attacker adds "role": "admin" to the request body, and the server saves it. The request is well formed and returns 200 OK. Some scanners test for extra fields like this. The harder part is confirming that the change actually took effect and that this user wasn't allowed to make it, which takes knowing how the app's roles work.
Finding these flaws takes work a scanner doesn't do. You have to sign up, confirm an email, log in as two different people, walk through a multi-step flow, and then try the steps out of order.
What kinds of business logic flaws are there?
Most business logic flaws fall into six families. Agents can test the first three once they can act as different users, need your rules for the fourth, and need extra care or context for the last two.
| Family | What it looks like | Where it's covered |
|---|---|---|
| Authorization logic | User A opens user B's order by changing order_id=1002 to 1003 | OWASP API1 (BOLA), API5 (BFLA), WSTG-ATHZ-04, CWE-639 |
| Workflow and state | Calling /login/complete without passing the MFA step | WSTG-BUSL-06, CWE-841 |
| Values and parameters | Setting a quantity to -1, or changing a hidden role=user field to role=admin | WSTG-BUSL-01, CWE-472 |
| Limits and abuse at scale | A user creating more API keys than the set limit allows | WSTG-BUSL-05 |
| Timing and concurrency | Two requests redeem one single-use invite and both go through | CWE-362 |
| Domain-specific abuse | Support staff opening a customer's workspace with no open ticket | No single CWE or WSTG test |
Which business logic flaws can AI pentesters find today?
Agentic pentesters can find authorization flaws, skipped steps, and tampered values once they can test as more than one user. Abuse limits and custom role rules also need your input. Company-specific abuse depends on context that neither an agent nor a human tester has by default.
The table below breaks this down flaw by flaw, along with what the agent needs from you to have a fair shot.
| Flaw class | What an agent can do today | What the agent needs from you |
|---|---|---|
| IDOR / BOLA | Strongest fit | Two accounts in the same role |
| BFLA and vertical privilege escalation | Strongest fit | A low-privilege account and a high-privilege account |
| Cross-tenant data access | Strongest fit | Accounts in two different tenants |
| BOPLA, including mass assignment | Can find, if it can see the fields | An API spec, or crawl coverage that exposes the fields |
| Parameter tampering | Can find | Access to the flow being tested (one account is enough) |
| Replaying a one-time action | Can find, if it's safe to repeat | A safe way to trigger the action more than once |
| Skipping steps in a multi-step flow | Can find | Access to the full flow, so it can record the normal order of steps |
| Custom role permissions | Can find with context | A role matrix showing which roles can call which endpoints |
| Abuse of sensitive flows (OWASP API6) | Can find with context | Which flows are sensitive and their normal limits |
| Race conditions | Can test | Concurrency tooling, a safe target, and end-state checks across repeated runs |
| Company-specific access policies | Can test once the policy is available | The policy, from your instructions, documentation, or source code |
| Severity and business impact | Can assist | What your data is and how it's classified, plus a person accountable for the call |
The top three rows are the strongest fit because the right answer is known before the test starts. The test accounts share no access, so if one account can read or change another account's private data, the agent knows that access wasn't allowed. It still checks what the response actually contains before reporting it.
What happened when we tested a real app?
In June 2026, Strobes AI ran a fully autonomous assessment of Fider v0.33.0, an open-source feedback platform with real logins, file uploads, webhooks, and an admin console. No human stepped in during the run.
The agent reported 45 validated findings, 37 of them exploitable on the live app. Our team reviewed every finding after the run and found zero false positives.
The standout result was a business logic flaw. A login step sent a six-digit one-time code but never limited how many guesses you could make. The agent requested a code for an administrator, guessed it in 189 seconds, and confirmed the session really belonged to an admin before reporting anything. No Fider-specific rule was needed to catch it. "A six-digit code shouldn't allow unlimited guesses" is true for every app, and that's exactly the kind of rule agents handle on their own.
Keep two limits in mind. This was one app, so your results will differ. And since no complete list of Fider's bugs exists, the test measured how accurate the findings were, not what share of all the bugs the agent found. The full method is in our benchmark report.
Where does AI help the most?
AI helps the most with repetition. Human testers automate authorization checks too, often with Burp Suite extensions like Autorize. The difference is how much setup it takes to run them again and again.
Say your app has 200 API endpoints and four roles, with two test users in each role. A simplified test matrix compares the two users inside each role, both ways (8 checks), plus one representative pair for every combination of roles, both ways (12 checks). That's 20 checks per endpoint, or 4,000 in total, before you count different object IDs. An agent can rerun that matrix each time you test, and that's where the saved effort comes from.
Agents still have limits here. Sessions expire, some workflows sit behind steps the agent can't reach, and every run has a time and request budget. So ask what the agent actually covered, endpoint by endpoint, instead of assuming it covered everything. Coverage matters most for IDOR and BOLA, since BOLA sits at the top of the OWASP API Security Top 10.
What do these flaws look like in a real test?
The two examples below are illustrative. They show the line between what an agent can test on its own and what it can only test once you share your rules.
An IDOR the agent catches on its own
Here the agent has signed up two accounts in the same role, users 1001 and 1002, with no shared or delegated access between them, using email inboxes it controls. That setup lets it prove the full chain instead of stopping at a suspicious response.
GET /api/v3/users/1002/profile (session: user 1001)
-> 200 OK, returns user 1002's email and phone number
PATCH /api/v3/users/1002/profile (session: user 1001)
{"email": "agent-inbox@test.example"}
-> 200 OK
GET /api/v3/users/1002/profile (session: user 1002)
-> email now reads agent-inbox@test.example
POST /api/v3/auth/password-reset
{"email": "agent-inbox@test.example"}
-> reset email arrives in the agent's test inbox
POST /api/v3/auth/reset
{"token": "TOKEN_FROM_INBOX", "password": "NEW_PASSWORD"}
-> 200 OK
POST /api/v3/auth/login (user 1002, NEW_PASSWORD)
-> 200 OK, session issued for user 1002
Every request here is valid on its own. The agent flags the sequence because the rule being broken is universal: user 1001 should never read or change user 1002's profile. Checking from user 1002's own session confirms the email change stuck, and the final login proves the takeover. Without those last steps, the honest label would be "unauthorized profile change with a possible takeover path."
This flaw class causes real damage. In 2019, First American Financial exposed about 885 million files this way. Its document links didn't require a login, and changing the number in a link pulled up other people's records, including bank statements and mortgage papers.
An MFA rule the agent needs from you
Now picture an app whose security policy says a user must pass an MFA check before changing the account's recovery email. A signed-in session that never passed that check sends PATCH /api/v3/account/recovery-email with a new address, and the app saves it with a 200 OK. No MFA prompt ever appears.
The request is valid, and users are allowed to edit their own accounts. Plenty of apps don't ask for MFA at this step, so nothing tells the agent this one should. It has no basis to flag it, and a human tester who was never told the policy wouldn't either.
Once you add "changing the recovery email requires a fresh MFA check" to the agent's instructions, it knows what to test. It can change the email from a session that never passed MFA, confirm the new address took effect, and report the sequence as proof. That matters, because a stolen session plus a new recovery email is a path to full account takeover. One sentence of context turns a blind spot into a finding.
Where do AI pentesters still fall short?
AI pentesting still struggles with three things: rules it has no way to learn, race conditions, and judging how much a flaw matters to your business.
Rules the agent has no way to learn
Testers call this the oracle problem, and the recovery-email example above shows it in action. Without a way to know the right answer, the agent sends the request, gets a clean 200 OK, and moves on. Human testers hit the same wall, but good ones ask about these policies during scoping, so give your agent the same briefing.
Race conditions
A race condition happens when two requests land at nearly the same moment and the app processes both before it updates its records. Think of two requests redeeming the same single-use invite code at once, where both succeed and two accounts join on one invite.
Testing for this means sending requests at nearly the same instant, often with Burp Suite's Turbo Intruder or a single-packet attack. Sometimes two requests are enough to trigger the bug, though larger batches make it easier to find. Agents can run these tests, but proof is the harder part, because a race can win on one run and lose on the next. A solid race finding shows the end state, like how many accounts joined on that invite, across repeated attempts, and says plainly when the results were mixed. We recommend a human review it before it sets your fix priority.
Business impact
An agent can prove that user B's files leaked to user A. If you tell it what those files contain, it can also flag that the leak exposes health records or card data. Deciding whether that makes it a reportable breach in your industry still takes someone accountable for your data, your customers, and your regulators.
How does agentic AI test application logic?
Here's how Strobes agents do it, in five steps. Each agent gets the toolkit a human tester asks for on day one: email addresses it controls, its own accounts, a real browser, and a way to replay and race requests.

- Map the app and its states. The agent first works out what kind of app it's testing, such as SaaS, fintech, or healthcare. It crawls the app in a real browser, reads any API spec you give it, and rebuilds the main flows as state machines from the traffic it captures. For each step, it writes down what the server trusts, such as who the user is, the order of the steps, and any values the client calculates.
- Get in as more than one user. Many logic bugs sit behind a signup wall, so the agent signs itself up. It uses an email address it controls, reads the verification email, and creates a second account to attack the first. For roles it can't register into, like admin, it uses accounts you supply. It then holds one logged-in session per role or tenant at the same time.
- Turn each trust assumption into a test. Every assumption from step 1 becomes something to break. An authorization matrix replays every captured request under every other role and reports only the requests that cross a boundary. Recorded flows let the agent jump straight to the last step or run the steps out of order. It also asks what a human tester would ask. Does a password-reset link still work after it's been used? Does tenant A's invite work in tenant B?
- Prove it. A finding counts only when the proof matches the claim. An IDOR has to return another user's data, and a race has to show the final state, reproduced twice. Each bug class has a checklist of four questions: did it reproduce, what did the control run show, what was the intended behavior, and what's the impact? Every request the agent sends is logged, and each finding comes with the real request and response. A separate model then reviews every finding for real impact and duplicates, and a validation phase re-runs the proof. Our post on how agentic pentesting validates findings covers what good proof looks like.
- Hand off what it can't do or judge. When a flow needs an SMS code or a CAPTCHA, the agent pauses and asks you. Anything that depends on business rules it wasn't given, or on a judgment about impact, goes to a person instead of being guessed at.
What do Strobes agents test?
Here are the twelve kinds of cases Strobes agents test.
- Signup and email verification. Using the app before confirming the email, reusing one verification link on a second account, and sending hidden fields like role, is_admin, or org_id at signup.
- Email change. Checking whether a new email takes effect before it's confirmed, whether old sessions survive the change, and whether one account can claim another account's address.
- Password reset. Tokens that work twice, never expire, outlive a newer token, or work for another user, plus reset emails that point to an attacker's host through a poisoned Host header.
- Invites and tenant joins. Replaying an accepted invite, using tenant A's invite while logged in to tenant B, changing the role inside the invite request, and accepting after the inviter's access was revoked.
- Cross-tenant access. Replaying every request as another user or tenant, including exports, webhooks, and file downloads, which often skip the checks the main API enforces.
- Privilege escalation. Replaying admin actions as a lower role, editing role fields in profile updates, and checking whether a demoted user keeps admin rights until logout.
- Workflow skipping. Recording a multi-step flow, such as cart, address, payment, and confirm, or KYC, approval, and payout. The agent then jumps straight to the last step, replays an earlier step after a later one, and runs the steps in a different order. An order that reaches "confirmed" without a payment step is a direct money loss.
- Price, quantity, and currency tampering. Changing prices and totals in the requests the client sends, trying negative and fractional quantities and zero-value items, switching currency between the quote and the charge, and testing rounding on very small amounts. If the server trusts a total the client computed, the agent shows it.
- Coupons, credits, and referrals. Applying the same coupon twice, stacking codes that shouldn't combine, and applying a code after the price has changed. For referral programs, the agent registers a second account with its own email and refers itself to see whether the reward pays out.
- MFA and OTP. Login paths that skip the second factor, such as the API, mobile endpoints, or password reset, plus codes that can be brute-forced, never expire, or still work after a newer one is sent.
- Webhooks and integrations. Pointing webhook and import-from-URL features at the agent's own listener to see exactly what the app sends, replaying signed webhooks, and registering webhooks on another tenant's resources.
- Race conditions. Sending a one-time action, like redeeming a coupon, withdrawing a balance, claiming a trial, or casting a vote, many times at once. A finding needs the final state to show the action happened more than once, and the result has to reproduce twice.
How do you set this up in Strobes?
- Accounts. Where your app allows signup, the agent creates its own accounts with email addresses it controls. For roles it can't register into, add accounts from the Credential Manager. The agent uses them without the passwords ever reaching the model.
- API files. For APIs, upload an OpenAPI spec, a Postman collection, or a HAR file. These give the agent a starting list of endpoints and example requests.
- Your rules. Write your business rules into the workspace's standing AI instructions, which the agent applies on every turn, like "probe order_id on /api/v3/orders for IDOR" or "changing the recovery email requires a fresh MFA check."
- Approvals. To approve each phase before it runs, set the execution mode to Human-in-the-loop. If the agent hits a question it can't answer on its own, it stops and asks, and you can reply from the Human in the Loop page.
The agents also work inside firm limits. They stay on the named targets, change only data they created, use the smallest harmless proof, and redact secrets in reports. Self-registered accounts keep the testing away from your real customers' accounts.
The Web App Pentest playbook follows OWASP WSTG v4.2, which includes the business logic test cases. Every finding comes with the recorded requests and responses behind it, and you can copy any of them as a cURL command to replay it yourself. The agentic pentesting complete guide walks through the full setup.
How does agentic AI compare to DAST and manual pentesting?
For business logic, combining agentic AI with human testers covers more than either one alone. General-purpose DAST scanners have limited coverage of app-specific rules, agents can repeat the universal checks every time you test, and human testers bring the business knowledge for the rest.
| What you're testing | DAST scanner | Agentic AI pentest | Manual pentest |
|---|---|---|---|
| IDOR, BOLA, BFLA | Limited, depends on multi-session support | Can test across many endpoints, given the right accounts | Can test, within the time and tooling available |
| Workflow bypass | Rarely, no knowledge of workflow rules | Can test by recording and replaying the flow | Can test, especially after a scoping briefing |
| Parameter tampering | Sometimes, for known patterns | Can test | Can test |
| Race conditions | Rarely | Can test, review recommended | Can test with concurrency tooling |
| Company-specific abuse | Limited without custom checks | Once the rules are available | Once the rules are available or confirmed in scoping |
| Severity and business impact | Generic severity rating | Can assist | Can judge, with business input |
| Proof you get | Scanner alert with request and response | Ordered request sequence | Report with reproduction steps |
| Example cadence (one common setup) | Every build | On a schedule or before each release | Once or twice a year |
The cadence row shows one common setup, not a fixed rule, but it matters. If your manual test happens once a year, a logic flaw shipped in February can sit open until next January. For more on how these approaches differ beyond business logic, see DAST vs penetration testing vs agentic pentesting.
How can you test a vendor's business logic claims?
The best way to check a vendor's claim is to plant a logic bug you already know about and see if their agent finds it. This five-step test works on any vendor, and that includes us.
- Give the agent real context. Hand over the accounts each test needs: two users in the same role, users in different roles, and users in two tenants if your app is multi-tenant. Add a one-page sheet of your key business rules, such as which roles can call which endpoints and how long sessions stay valid. Then ask how the agent takes in rules like these.
- Plant a known bug in staging. Pick something like a password-reset link that works twice, or an endpoint that doesn't check who owns the record. Don't tell the vendor what it is.
- Ask for proof on every logic finding. Each one should come with the full ordered request sequence, so your team can replay it and reach the same broken state. For race conditions, ask for the end state across repeated runs.
- Ask what each run covered. Get a list of the endpoints, roles, and workflows the agent actually tested, ideally mapped to the OWASP WSTG business logic test cases.
- Count the false positives and ask about escalation. Have a human tester triage every logic finding and track how many hold up. Then ask what makes the agent hand a finding to a human, and how it records cases it couldn't resolve.
If you're planning a proof of concept, our guide to running an agentic pentesting POC shows how to scope and score one. For broader vendor checks, see the questions to ask before choosing a pentesting vendor.
Where does this fit in exposure validation?
A logic flaw becomes a validated exposure when you have both a replayable request sequence and a confirmed rule or permission that the result breaks. With both in hand, it can go straight to remediation. In Strobes, agentic pentesting runs these checks as part of exposure validation, on a schedule or before each release. An automation can then open a Jira issue for each finding the validation agent confirmed. For the company-specific cases at the bottom of the capability table, human testers through Pentesting as a Service (PTaaS) pick up where the agent stops.
FAQ
Can AI replace human pentesters?
Not fully. In a Stanford-led study published in December 2025, an AI agent called ARTEMIS tested a university network of about 8,000 hosts alongside 10 professional pentesters. It found 9 valid vulnerabilities with an 82% valid submission rate, beating 9 of the 10 humans, while the top tester found 13. For business logic, where company rules matter most, plan on agents and human testers working together.
Can automated tools detect IDOR and BOLA?
Yes. Agentic pentesters can find IDOR and BOLA when they have two accounts in the same role, and BFLA when they have accounts in different roles. They create or find an object as one user, then request it as another. General-purpose DAST scanners catch fewer of these, since most can't compare what different users are allowed to see.
Can AI pentesters find race conditions?
Partly. Agents can send near-simultaneous requests to test for race conditions. Because results can change from run to run, a solid finding shows the end state across repeated attempts and states any mixed results plainly. We recommend a human review race findings before they set your fix priority.
What OWASP and CWE categories cover business logic vulnerabilities?
The main ones are the business logic tests in the OWASP Web Security Testing Guide (the WSTG-BUSL test cases) and CWE-840, Business Logic Errors. The OWASP API Security Top 10 also covers logic flaws in API1 (BOLA), API3 (BOPLA), API5 (BFLA), and API6 (Unrestricted Access to Sensitive Business Flows).
Is AI pentesting enough for PCI DSS if business logic is my main risk?
Not on its own. PCI DSS v4.0.1 Requirement 11.4 calls for penetration testing, including the application layer, at least once every 12 months and after significant changes. The tester must be a qualified internal resource or a qualified external third party, with organizational independence. Confirm with your assessor that your testing methodology and evidence meet the requirement. Many teams pair agent-led testing with human-led tests to cover it.
Bottom line
AI pentesting can find business logic flaws when it knows what "correct" looks like and can reach the workflow to test it. That covers common flaws like IDOR, BOLA, and privilege escalation, once it can test as more than one user, and company-specific abuse once your rules are available to it. Before you trust any results, check three things: which workflows the agent actually tested, which findings came with replayable proof, and which cases it handed to a human.
Sources
- MITRE, >CWE-840: Business Logic Errors
- OWASP, >API Security Top 10 (2023)
- OWASP, >Web Security Testing Guide
- Lin et al. (Stanford University), >Comparing AI Agents to Cybersecurity Professionals in Real-World Penetration Testing, arXiv:2512.09882
- Wang et al., Anota: Identifying Business Logic Vulnerabilities via Annotation-Based Sanitization (CISPA / Max Planck), >arXiv:2512.20705, NDSS 2026
- KrebsOnSecurity, >First American Financial Corp. leaked hundreds of millions of title insurance records (2019)
- PCI Security Standards Council, >PCI DSS v4.0.1
- Strobes Security, Autonomous Pentesting Benchmark Report: Fider v0.33.0 (June 2026)

