Hijacking de Deep Links
Los esquemas de URL personalizados sin verificación de host permiten que apps maliciosas intercepten los deep links de tu app y roben tokens OAuth o parámetros sensibles.
Cómo Funciona
Cuando registras un esquema de URL como myapp://, cualquier app puede reclamar ese esquema. Si tu flujo OAuth redirige a myapp://callback?token=xyz, una app maliciosa registrada con el mismo esquema lo intercepta primero y roba el token. Android e iOS ambos permiten que múltiples apps manejen el mismo esquema.
// MAL: esquema custom sin verificación de host — interceptable por cualquier app
// app.json (Expo)
{
"scheme": "myapp" // cualquier app puede interceptar links myapp://
}// BIEN: usa universal links (HTTPS) que se verifican por dominio
// app.json (Expo)
{
"scheme": "myapp",
"intentFilters": [{
"action": "VIEW",
"data": [{ "scheme": "https", "host": "myapp.com" }]
// iOS: requiere archivo apple-app-site-association en tu dominio
}]
}Ejemplo Real
CVE-2019-14801 demostró hijacking de deep links en múltiples apps populares de Android. Los atacantes publicaron apps con esquemas de URL coincidentes en Play Store, interceptando tokens OAuth de apps legítimas.
Cómo Prevenirlo
- Usa Universal Links (iOS) y App Links (Android) con HTTPS en vez de esquemas URL personalizados para OAuth
- Valida el URI de redirección en el servidor contra una whitelist de URIs permitidos
- Usa PKCE (Proof Key for Code Exchange) en flujos OAuth para vincular tokens a la app que inicia el flujo
- Nunca pases tokens ni datos sensibles en parámetros de URL — usa sesiones del lado del servidor
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Exposición del Portapapeles
lowLos datos sensibles copiados al portapapeles (contraseñas, tokens, números de tarjeta) persisten ahí indefinidamente y pueden ser leídos por cualquier app.
Capturas de Pantalla No Prevenidas
lowLas pantallas bancarias y de pago sin protección contra capturas permiten que datos sensibles sean capturados por malware o aparezcan en la pantalla de apps recientes de Android.
Certificate Pinning Faltante
highSin certificate pinning, los atacantes en la misma red pueden interceptar el tráfico HTTPS de tu app con una autoridad de certificación falsa.
Detección de Root/Jailbreak Faltante
mediumEjecutar una app financiera o de salud en un dispositivo rooteado o con jailbreak significa que todos los controles de seguridad pueden ser eludidos por el dueño del dispositivo.