Inyección SMS
Incluir input del usuario sin validar en mensajes SMS permite a los atacantes inyectar saltos de línea y crear mensajes fraudulentos que parecen venir de tu aplicación.
Cómo Funciona
Los cuerpos de SMS son texto plano. Los caracteres de nueva línea (\n) pueden dividir un SMS en múltiples mensajes o inyectar contenido que aparece en una nueva línea — engañando a los destinatarios para que piensen que el texto adicional es parte del mensaje oficial. Esto se usa para enviar confirmaciones de pago falsas o links de phishing en nombre de tu app.
// MAL: input del usuario directamente en el cuerpo del SMS
const mensaje = `Tu código de verificación es: ${req.body.codigo}`;
await twilioClient.messages.create({ body: mensaje, to: telefonoUsuario });// BIEN: sanitiza el input y usa una allowlist para el contenido del SMS
const codigo = req.body.codigo?.replace(/[^0-9]/g, '').slice(0, 8);
if (!codigo) return res.status(400).json({ error: 'Código inválido' });
const mensaje = `Tu código de verificación es: ${codigo}`;
await twilioClient.messages.create({ body: mensaje, to: telefonoUsuario });Ejemplo Real
Los ataques de inyección SMS han sido usados para falsificar alertas bancarias y mensajes OTP en múltiples casos de fraude reportados. Los atacantes usan caracteres de nueva línea para inyectar información de saldo falsa o links maliciosos después de una primera línea que parece legítima.
Cómo Prevenirlo
- Nunca incluyas input del usuario crudo en el cuerpo de un SMS — siempre sanitiza y valida primero
- Para códigos de verificación, usa una allowlist estricta (solo dígitos, máximo 8 caracteres)
- Usa las opciones de filtrado de contenido de Twilio o tu proveedor de SMS
- Loguea todo el contenido SMS saliente para detección de anomalías
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Spoofing de Email (Sin SPF/DKIM/DMARC)
mediumSin registros DNS SPF, DKIM y DMARC, cualquiera puede enviar emails fingiendo ser de tu dominio — habilitando ataques de phishing contra tus usuarios.
Inyección de Notificaciones Push
lowIncluir input del usuario sin sanitizar en payloads de notificaciones push permite a los atacantes crear notificaciones engañosas a nombre de tu app.