Home / Knowledge hub / Business logic flaw
Knowledge hub
Business logic flaw
Nothing is technically broken, but your own rules turn against you.
What it means
A business logic flaw is a bug where nothing is technically broken, yet somebody turns the rules of your own product against you. Stacking a discount twice. Ordering a negative quantity and collecting a refund. Resetting a monthly quota by cancelling and resubscribing. Reaching the confirmation page without paying.
Every request in those examples is valid. The application does exactly what it was told. Somebody told it the wrong thing.
It is not a coding error, so no linter, scanner or test suite flags it. Your code is correct. Your rule is not.
Why it matters
Tools miss it because it looks like normal use and offers no pattern to match. Worse, the losses get booked as something else: shrinkage, refund abuse, a strange spike in free trials. A flaw can run for a year while somebody explains it away every month.
It also depends most on knowing the product. The flaw is a disagreement between what the code does and what you intended, and only one of those was ever written down.
Your own customers usually find these first. Somebody notices that cancelling mid-month keeps the feature, posts it on a forum, and the behaviour spreads faster than your next release.
How it shows up
It lives wherever money, quotas, approvals or sequences appear. Ask what happens when somebody does the steps out of order. Or sends a negative or enormous value. Or fires the same action twice at once. Or cancels after the benefit has already landed.
We will be straight with you. Our business-logic module ships on 4 January 2027, so we do not test this class today. See what we have not built yet.
Questions people ask
Business logic flaw, answered
What actually counts as business logic?
The rules your product exists to enforce. One discount per order. A refund cannot exceed the payment. A trial does not restart. Approval before dispatch.
The flaw is a gap between that rule and the code. Everything works. The result is simply not what you meant, and only you can say what you meant.
Can a penetration test find these, or is it out of scope?
A good one can, provided the scope says so and the tester learns your product first. It is manual work. Somebody has to understand the rules before they can bend them.
Ask a supplier directly whether logic is included and what they would need from you. A vague answer usually means a scan with a report wrapped around it.
Can any automated tool detect this sort of flaw?
Not really, and treat anyone who claims otherwise with care. A scanner matches patterns. A logic flaw has no pattern, because every request in it is valid and every response is normal.
We will be straight about our own position. Our business-logic module ships on 4 January 2027, so we do not test this class today.
If the rules live in the back end, are we safe?
Safer, and not safe. Moving the rules to the server stops somebody editing a price in their browser. It does nothing about a rule that is wrong, or one that only holds when the steps happen in order.
Write the rule down plainly, then ask what a determined customer would try. Out of order. Twice at once. Backwards. A negative number.
Is a race condition a business logic flaw?
It often shows up as one. Fire the same request twice in the same instant and a one-per-customer rule can pay out twice, because both requests read the balance before either changed it.
Look at anything counted, limited or spent: vouchers, credits, one-time codes, withdrawal limits. Where the check and the change are separate steps, that gap is where it goes wrong.
Related
Terms that sit next to this one
Race condition
Two near-simultaneous actions producing a result neither should allow.
Rate limiting
Capping how often something can be attempted, per user or per address.
Authorization
Deciding what a proven user is then allowed to do.
Threat model
Asking what is worth taking, who wants it, and how they would try.
Penetration test
A time-boxed engagement where skilled people attack your systems by hand.
Your own rules, used against you?
Straight answer: our business-logic module ships on 4 January 2027, so we do not cover this class yet. Until then we test the other nine and prove each finding. See what that covers.
Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.