Skip to content

API security

Business workflow race conditions: test safe concurrent requests

Plan a bounded race-condition assessment with disposable records, clear invariants and protection against unintended side effects.

By BugSnaps · Updated

Add BugSnaps as a preferred source on Google(opens in a new tab)

Want more of our security guides? Select BugSnaps and confirm your choice on Google.

Direct answer

A race condition can occur when concurrent requests violate a business rule such as redeeming one test coupon twice. Define the invariant first and use a controlled environment with explicit approval.

Define the invariant

Work with the owner to choose a disposable workflow, such as a coupon that may be redeemed once. Document expected final state, test account, request budget, rollback and external systems that must be disabled or simulated.

Reference: OWASP Business Logic Security Cheat Sheet.

Establish a sequential control

Run one normal redemption and verify its final state, then retry sequentially and confirm the second action is rejected or handled according to policy. Reset the test fixture and validate that the control is reproducible.

  • Use no real payments, emails or customer records.
  • Set a strict concurrency and request ceiling.
  • Agree stop conditions with operations.

Compare bounded concurrency

Submit only the approved small set of simultaneous requests against the reset fixture. Inspect final durable state and business side effects, not just response codes. Repeat only as agreed; load or timing changes can affect the result.

Retest the invariant

After the owner applies a transactional or other appropriate control, repeat sequential and concurrent cases. Confirm one legitimate action still succeeds and duplicate side effects do not occur; document timing and coverage limits.

Assessment limits

A successful small test does not prove all concurrency patterns are safe. Testing real financial transactions or stressing a production system needs separate authorization and safeguards.

Frequently asked questions

Do two successful HTTP responses prove a duplicate transaction?

No. Inspect the final durable state and external side effects; one response may represent a safe duplicate acknowledgment.

Should concurrency testing run against real payments?

Use a sandbox or synthetic fixture unless the owner separately approves a safe controlled process.

Primary sources and further reading

These guides combine published security guidance with practical assessment planning. Adapt checks to the owner's policy, environment, and authorized scope.

This guide was prepared with AI assistance using the linked sources and illustrative examples. Check current vendor guidance and your environment before making changes.

Apply the guide to your own assessment.

Start with an authorized target, known test data, and a clear scope. Use the report's evidence and coverage limits to decide which checks need further review.

Open MyPentest