[ES] Sensitive Data Exposure via JSON-RPC (Whistleblowing Channel)
Vulnerability Summary
Un endpoint desprotegido permitía exfiltrar, a través de una simple petición POST no autenticada, gigabytes de configuraciones, metadatos estructurales e información personal y corporativa privada de las organizaciones que utilizaban el software.
Nota de Censura: Todos los datos (dominios, rutas, URIs, métodos JSON-RPC, nombres de variables, NIFs corporativos, correos y nombres de empresas) han sido estrictamente anonimizados utilizando nomenclatura totalmente ficticia (ej.
dashboard.internal-sec.com). Este reporte es un entorno simulado para garantizar al 100% la privacidad del programa afectado.
Este writeup detalla una vulnerabilidad crítica de Exposición de Información (Information Disclosure) dentro de una plataforma corporativa para la gestión de Canales de Denuncias Anónimas (Whistleblowing).
Un endpoint desprotegido permitía exfiltrar, a través de una simple petición POST no autenticada, gigabytes de configuraciones, metadatos estructurales e información personal y corporativa privada de las organizaciones que utilizaban el software.
Análisis de la Vulnerabilidad
El fallo se centraba en un servicio JSON-RPC del lado del servidor que alimentaba la interfaz gráfica. Su propósito real debía ser listar las distintas "categorías" de configuración disponibles, mediante este endpoint:
POST /api/v1/services/CoreConfigService.json HTTP/1.1
Host: dashboard.internal-sec.com
La brecha de seguridad combinaba dos errores graves:
- Falta de Control de Acceso: No existía validación de sesión (Cookies) ni cabeceras de autorización para procesar esta solicitud específica.
- Sobre-Exposición de Datos (Mass Assignment inverso): El backend no filtraba los atributos a nivel de base de datos. En vez de enviar sólamente lo que la pantalla principal necesitaba leer, el servidor procedía a leer de la base de datos el objeto completo relativo al "Canal" y lanzaba todo ese árbol de datos gigante en la respuesta HTTP hacia el cliente.
El Payload (PoC)
El ataque era completamente lineal. Consistía en interceptar la petición y manipular el payload JSON original, alterando el parámetro lógico que invocaba métodos internos en el endpoint (que llamaremos figurativamente getChannelConfigDetails).
El atacante solo necesitaba enviar la siguiente solicitud de manera anónima desde cualquier cliente REST o terminal:
Related Writeups
[EN] Public Exposure of Internal API Models (.smd)
This writeup details an Information Disclosure (CWE-200) vulnerability that allowed viewing the source code and complete domain model mapping of a corporate backend.
[ES] Public Exposure of Internal API Models (.smd)
Este writeup detalla una vulnerabilidad de **Exposición de Información (Information Disclosure - CWE-200)** que permitía visualizar el código fuente y el mapeado completo de los modelos de dominio de un backend corporativo.
[EN] Sensitive Data Exposure via JSON-RPC (Whistleblowing Channel)
An unprotected endpoint allowed the exfiltration, via a simple unauthenticated POST request, of gigabytes of configurations, structural metadata, and private personal/corporate information belonging to the organizations using the software.