Race Condition in Plan Coupon Limits
Plataforma de cupones donde cada plan (Free/Pro/Premium) tiene un limite de cupones canjeables. Race condition permite superar el limite enviando peticiones concurrentes para diferentes cupones
This hack was reported with no reward
Learn to find this bug
A real hack, reproduced for you to practice.
Create your account and practice real bugs that got paid. Download the environment, find it and learn the exact technique — your path to your first bounty.
hunters training
labs from real hacks
completions
paid out for these bugs
Access to all labs · no commitment · cancel anytime
Hackers who solved it· 8
Objectives
Achievement you'll earn
Solve this lab to unlock this shareable achievement

Community writeups
The checklist I run on every new target
47 checks ordered by cost: first what can get you in trouble, then the cheap stuff, and finally the expensive stuff — which is where the big bounties are. I'll send it to your inbox right now.
Unsubscribe in one click, from any email.
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
https://localhost:1000
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
DealZone es una plataforma de cupones con planes de suscripcion que limitan la cantidad de cupones canjeables.
La vulnerabilidad
POST /api/coupons/:id/claim verifica el total de cupones canjeados contra el limite del plan con un delay antes de completar el canjeo. Peticiones concurrentes para diferentes cupones pasan todas el check.
Cadena de ataque
1. Login como alice (Free, limite 2)
2. Listar cupones disponibles (12 cupones)
3. Enviar 12 peticiones concurrentes (una por cupon)
4. Todas pasan el check del limite
5. Resultado: 12 cupones canjeados con plan Free
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Flag
(mas cupones canjeados que el limite del plan)
Remediacion
- Transacciones atomicas con bloqueo de fila
- Incremento atomico del contador de cupones
- Verificacion post-commit del limite
