Resumen
El investigador encontró un servidor de Reddit escuchando por HTTPS en una dirección IP pública y un puerto no estándar, 52.90.28.77:30920, que funcionaba como proxy. El problema era de control de acceso: bastaba con indicar en la cabecera Host el nombre de un dominio interno de la empresa para que el proxy diera acceso a él, sin ninguna restricción sobre quién hacía la petición.
Para respaldar que esos dominios eran internos, el reporte señala snoo.dev, un dominio que aparece en certificados públicos (búsqueda en Censys) y en varias referencias dentro del código de la organización de Reddit en GitHub, y que según el investigador usan los empleados.
HackerOne lo clasificó como Improper Access Control - Generic con severidad alta. Se envió el 30 de enero de 2025, se resolvió con recompensa (importe no público) y se divulgó el 24 de febrero de 2025.
Pasos de reproducción
- Hacer una petición HTTPS directamente a la IP y puerto del proxy, a la ruta
/reddit, ignorando la validación del certificado (--insecure). - Poner en la cabecera
Hostel nombre de un dominio interno de Reddit. En el reporte publicado ese valor está tapado:
curl --insecure https://52.90.28.77:30920/reddit --header "Host: [REDACTADO]"
- El proxy atiende la petición y da acceso al dominio interno indicado.
Impacto
Un atacante sin credenciales podía alcanzar desde Internet dominios internos de Reddit que deberían estar reservados a sus empleados, saltándose la barrera de red que los separa del exterior. El reporte no detalla qué servicios concretos quedaban expuestos ni qué datos se podían leer en ellos.
Qué aprender de este caso
- Al buscar infraestructura olvidada, no te quedes en los subdominios: las IP de la nube con puertos altos (aquí el 30920, dentro del rango que Kubernetes usa por defecto para NodePort) pueden esconder proxies o ingress publicados por error.
- Ante cualquier proxy o balanceador accesible, prueba a cambiar la cabecera
Hostpor nombres internos de la organización; los certificados públicos y el código abierto de la empresa son buenas fuentes para descubrirlos, como hizo el investigador consnoo.dev. - Si un proxy enruta según
Host, limita los destinos a una lista explícita de dominios públicos y rechaza el resto; los internos solo deberían ser alcanzables desde un punto de entrada que exija autenticación. - Un servicio interno no debería quedar expuesto con IP pública: restringe el puerto con reglas de red o grupos de seguridad para que solo responda a la red corporativa.