Race Condition in Vote/Review System
Marketplace donde el sistema de votos y reviews tiene race conditions que permiten votar multiples veces y dejar multiples reviews para destruir la reputacion de un producto.
Este hackeo se reportó sin recompensa
Aprende a encontrar este bug
Un hackeo real, reproducido para que lo practiques.
Crea tu cuenta y practica bugs reales que se pagaron. Descarga el entorno, encuéntralo y aprende la técnica exacta — tu camino a tu primer bounty.
hunters entrenando
labs de hackeos reales
completaciones
pagados por estos bugs
Acceso a todos los labs · sin permanencia · cancela cuando quieras
Hackers que lo han resuelto· 8
Objetivos
Logro que recibirás
Cuando resuelvas este lab desbloqueas este logro compartible

Writeups de la comunidad
La checklist que repaso en cada objetivo nuevo
47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.
Te das de baja en un clic, desde cualquier correo.
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
TrustMart es un marketplace con sistema de votos (like/dislike) y reviews con estrellas.
La vulnerabilidad
Los endpoints de votar (POST /api/products/:id/vote) y review (POST /api/reviews/product/:id) verifican si el usuario ya voto/reviewo con delay antes de registrar la accion. Peticiones concurrentes bypasean el check de unicidad.
Cadena de ataque
1. Votar normalmente → 1 voto registrado
2. Intentar votar de nuevo → bloqueado
3. Enviar 50 votos dislike concurrentes → todos pasan
4. Enviar 15 reviews 1-estrella concurrentes
5. Reputacion del producto destruida
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Flag
(reputacion del producto destruida)
Remediacion
- UNIQUE constraint en la base de datos (user_id + product_id)
- Transacciones atomicas
- INSERT ... ON CONFLICT DO NOTHING
