Inyección de Notificaciones Push
Incluir input del usuario sin sanitizar en payloads de notificaciones push permite a los atacantes crear notificaciones engañosas a nombre de tu app.
Cómo Funciona
Los cuerpos de notificaciones push aparecen con el ícono y nombre de tu app en las pantallas de bloqueo de los usuarios. Si un atacante puede controlar el texto (vía un nombre de usuario, nombre de producto o campo de mensaje), puede hacer que tu app muestre contenido de phishing, alertas de pago falsas o URLs maliciosas a otros usuarios.
// MAL: datos controlados por el usuario directamente en el cuerpo de la notificación
await admin.messaging().send({
token: tokenDestinatario,
notification: {
title: `Mensaje de ${usuario.displayName}`, // el atacante controla displayName
body: textoMensaje // contenido de mensaje sin validar
}
});// BIEN: sanitiza todos los campos controlados por usuarios en el contenido de notificación
const nombreSeguro = sanitizeText(usuario.displayName, { maxLength: 50 });
const cuerpoSeguro = sanitizeText(textoMensaje, { maxLength: 200, noUrls: true });
await admin.messaging().send({
token: tokenDestinatario,
notification: { title: `Mensaje de ${nombreSeguro}`, body: cuerpoSeguro }
});Ejemplo Real
Las apps de mensajería han sido abusadas para enviar notificaciones push con alertas del sistema falsas poniendo nombres como 'Alerta de Seguridad de Apple' o 'URGENTE: Tu cuenta ha sido comprometida' como nombre de pantalla.
Cómo Prevenirlo
- Sanitiza todos los strings controlados por usuarios usados en los campos de título y cuerpo de notificaciones
- Establece límites de longitud máxima para el contenido de notificaciones
- Elimina URLs de los cuerpos de notificaciones si el diseño de tu app no las requiere
- Considera escapar o eliminar caracteres especiales y emojis que podrían usarse para imitar la UI del sistema
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 SMS
mediumIncluir 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.