Sin Rate Limit en Envío de Email/SMS
Los endpoints de email y SMS sin rate limiting pueden ser abusados para enviar spam a usuarios o agotar tu presupuesto de envío mediante requests automatizadas.
Cómo Funciona
Los endpoints de reset de contraseña, email de verificación y SMS que no tienen rate limit pueden ser activados miles de veces por minuto. Los atacantes usan esto para enviar spam a víctimas con emails no deseados, incrementar tu factura de Twilio/Sendgrid o enumerar direcciones de email válidas verificando si se envía un email.
// MAL: reset de contraseña sin rate limiting — abusable para spam
export async function POST(req: Request) {
const { email } = await req.json();
const user = await db.users.findByEmail(email);
if (user) await sendPasswordResetEmail(user); // ¡sin rate limit!
return Response.json({ message: 'Si ese email existe, revisa tu bandeja.' });
}// BIEN: rate limit por IP y por dirección de email
export async function POST(req: Request) {
await rateLimit(req, { max: 3, window: '1h', key: `reset:${req.body.email}` });
await rateLimit(req, { max: 10, window: '1h', key: `reset:ip:${getIP(req)}` });
const { email } = await req.json();
const user = await db.users.findByEmail(email);
if (user) await sendPasswordResetEmail(user);
return Response.json({ message: 'Si ese email existe, revisa tu bandeja.' });
}Ejemplo Real
Múltiples servicios han sido abusados para enviar miles de mensajes SMS usando su propia cuenta de Twilio explotando endpoints de envío de SMS desprotegidos. Se han reportado facturas de $5,000-$50,000 en un solo día en plataformas sin rate limiting.
Cómo Prevenirlo
- Rate limit el envío de email/SMS a 3-5 por hora por dirección de email
- También rate limit por dirección IP para prevenir flooding distribuido
- Configura límites de gasto y alertas en Twilio/Sendgrid para limitar el daño potencial del abuso
- Usa CAPTCHA en endpoints de email de alto valor como reset de contraseña y formularios de contacto
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Datos Sensibles en Emails
mediumEnviar contraseñas, tokens completos, detalles de tarjetas o datos personales excesivos por email expone esos datos a proveedores de email, destinatarios que reenvían y cualquiera con acceso a la bandeja de entrada.
Datos Sensibles en Notificaciones Push
lowLos payloads de notificaciones push son visibles en la pantalla de bloqueo y logueados por los servicios de notificaciones — no incluyas números de cuenta, saldos o identificadores personales.