[ES] Massive Data Leak via Web Cache Deception
Vulnerability Summary
Este writeup detalla una vulnerabilidad crítica de Web Cache Deception (CWE-524) descubierta en los endpoints principales de una plataforma de gestión de dispositivos IoT/Smart Home.
Nota de Censura: Todos los datos (dominios, rutas, URIs y variables) han sido estrictamente anonimizados utilizando nomenclatura totalmente ficticia (ej.
api.smart-home-platform.net). Este reporte documenta una exfiltración indirecta de información personal y de dispositivos IoT en un entorno simulado para garantizar al 100% la privacidad de la empresa original.
Este writeup detalla una vulnerabilidad crítica de Web Cache Deception (CWE-524) descubierta en los endpoints principales de una plataforma de gestión de dispositivos IoT/Smart Home.
Debido a una desconfiguración severa entre las reglas de la red de entrega de contenidos (CDN) y el servidor origen corporativo, un atacante podía forzar al sistema a almacenar en la caché pública la información privada de cualquier usuario (emails, nombres de usuario, ubicación de la cámara y números de serie), dejándola completamente expuesta a internet.
Análisis de la Vulnerabilidad
En arquitecturas web modernas, las CDNs se encargan de mitigar la carga del servidor almaçenando estáticamente recursos "seguros" y no sensibles, como imágenes, hojas de estilo CSS o scripts JS, para despacharlos rápidamente a cualquier visitante. Las respuestas que contienen JSON dinámico y personal del usuario jamás deben ser cacheadas.
El problema descubiertó radicaba en la forma en la que la CDN de esta empresa clasificaba el contenido. La CDN determinaba si una solicitud debía guardarse en la caché pública basándose únicamente en la extensión final de la URL solicitada.
El atacante descubrió que al añadir ; .css al final de cualquier petición de una API dinámica del perfil de usuario, el servidor de aplicaciones procesaba la solicitud ignorando el sufijo, pero la CDN, al ver el .css, asumía que la respuesta final era una simple hoja de estilo y la depositaba permanentemente en su caché pública, compartida por todo el mundo.
Una URL originalmente estructurada como:
https://api.smart-home-platform.net/account/getDashboardLayout.json
Podría ser forzada a cachearse masivamente si se llamaba como:
https://api.smart-home-platform.net/account/getDashboardLayout.json;.css
El Vector de Ataque y Cadena (PoC)
Para que el atacante reciba los datos de otro usuario, primero debía inducir a la víctima a procesar esa petición bajo sus propias credenciales.
Para disparar el ataque de la manera más indetectable posible, el atacante encadenó esta vulnerabilidad con un Open Redirect presente en el proceso de cierre de sesión de uno de los subdominios de la misma compañía.