1. Descripción técnica
Unauthenticated Memcached Exposure ocurre cuando una instancia de Memcached es accesible desde una red no confiable y permite consultar su caché sin autenticar al cliente. Memcached almacena pares clave-valor en memoria; el riesgo depende de qué deposita la aplicación y de quién puede alcanzar el puerto.
La exposición no crea secretos por sí sola. El impacto aparece cuando la aplicación almacena contraseñas, sesiones, configuraciones u otros datos sensibles y el servicio los entrega a un cliente no autorizado.
1.1. Mecanismo
// renderizando diagrama…
2. Impacto
Puede divulgar credenciales, tokens, resultados de consultas y detalles internos. Si además se modifican claves, el atacante puede alterar el estado que consume la aplicación. El alcance depende del contenido y de su uso posterior.
3. Condiciones necesarias
- Memcached es alcanzable desde una red no confiable.
- El servicio no exige autenticación efectiva.
- La caché contiene valores útiles o la aplicación confía en valores modificables.
- Los valores siguen vigentes.
4. Validación y detección
Se revisan interfaces de escucha, firewall, configuración de SASL y clientes autorizados. Un puerto abierto no demuestra que existan secretos; hay que diferenciar el banner, la capacidad de consultar claves y la presencia comprobada de información sensible.
5. Explotación documentada en los writeups
5.1. 055-crazymed
La instancia expuesta permite enumerar cuatro claves. El valor log contiene la contraseña que protege un servicio personalizado en el puerto 4444.
6. Mitigación
- Escuchar sólo en loopback o en una red de aplicación segmentada.
- Bloquear los puertos de Memcached en los firewalls.
- Habilitar autenticación cuando la arquitectura la requiera.
- No almacenar secretos en claro ni usar la caché como fuente de autorización.
- Rotar cualquier credencial expuesta.
7. Clasificación
- CWE: CWE-306, Missing Authentication for Critical Function
- CWE relacionada: CWE-200, Exposure of Sensitive Information
- Impacto principal: divulgación o alteración de datos en memoria