Race conditions (TOCTOU / limit-overrun)
SkillAI & modelsExploit race conditions / TOCTOU, fire concurrent requests to break single-use limits. Load on "limit-once" actions: coupon/gift-card redemption, withdrawals, votes, invites, MFA/OTP attempts, balance changes. Signals: check-then-act on shared state, per-user quotas, "already used".
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Race conditions (TOCTOU / limit-overrun) skill
What this skill tells your AI
The instructions your AI receives, as published by noorqureshi/sploitagent in skills/web/web-race-conditions/SKILL.md and read by ahel’s review.
When it applies
An action is meant to happen once (or N times) and the server checks a condition, then acts, on shared state — without atomicity. Concurrent requests slip between check and update.
Why it works
Between "check if allowed" and "record that it happened" there's a window. Fire many requests in that window and several pass the check before any updates the state — so a one-time coupon redeems 10×, a balance is spent twice, a limit is overrun.
Method
- Pick a limited action with observable state (balance, redeemed flag, count).
- Send a burst in parallel aligned to hit the window together: Burp Turbo Intruder (single-packet attack for HTTP/2, or last-byte sync for HTTP/1) — the point is simultaneity, not volume.
- Measure the overrun: did the action succeed more times than allowed (2 redemptions, double credit)?
- Variants: multi-endpoint races (state set by A, consumed by B), and MFA/OTP brute windows.
Gotchas
- Sequential fast requests aren't a race — you need true concurrency (single-packet / synced send).
- Effect can be small (2× not ∞) but still valid; quantify the actual overrun.
- Idempotency keys / DB locks defeat it — a single success may just be correct behaviour.
Verify success
The limited action occurs more times than the rules allow (e.g. one coupon applied twice, balance double-spent), reproduced with the concurrent PoC.
References
PortSwigger race-condition labs; James Kettle "Smashing the state machine"; Turbo Intruder.
Signals
- GitHub stars
- 20
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
web-race-conditions- Source
- github.com/noorqureshi/sploitagent
github.com/noorqureshi/sploitagent
Related picks
Skill · davila7
The pick for Web (OWASP)owasp-web
Skill · nahid-sparktales
The pick for Web (OWASP)skill-creator
Skill · anthropics
More in AI & modelswayfinder
Skill · mattpocock
More in AI & modelswizard
Skill · mattpocock
More in AI & modelsalgorithmic-art
Skill · anthropics
More in AI & models