Advertencias de seguridad

Advertencia de seguridad de Fastly: Vulnerabilidad por envenenamiento de caché que aprovecha el encabezado X-Forwarded-Host

5 de agosto de 2020

Aplicabilidad


La vulnerabilidad es una variante de una vulnerabilidad previamente comunicada y, en última instancia, es el resultado de diseñar respuestas de origen almacenables en caché basadas en datos definidos por el usuario. El problema se produce cuando un atacante emite una petición HTTPS y especifica en el encabezado Host un número de puerto que no se está utilizando realmente para ningún servicio. Existe la posibilidad de almacenar en caché un recurso de tal manera que se impida que futuras peticiones se atiendan de forma adecuada.


Esta vulnerabilidad se aplica a los clientes cuyo servicio cumpla los dos criterios siguientes:




  • El origen utiliza toda la información del encabezado X-Forwarded-Host (incluido el número de puerto) para formar una respuesta de redireccionamiento destinada al cliente.




  • Tu servicio de Fastly está configurado para almacenar en caché la respuesta de redireccionamiento del origen.




Resumen


Fastly recibió una notificación del problema el 21 de mayo de 2020 a las 13:30 UTC e, inmediatamente, abrió una investigación para identificar los servidores de origen que respondieron con un número de puerto de prueba en la respuesta de redireccionamiento, con el fin de entender la vulnerabilidad e identificar posibles soluciones. Concluida la investigación, Fastly notificó los hechos por primera vez el 15 de julio de 2020 a las 04:30 UTC a los clientes potencialmente afectados.


Impacto


Si se hubiera aprovechado la vulnerabilidad, el servicio afectado no habría podido ofrecer a sus clientes contenidos dirigidos.
Por ejemplo, un atacante crea una petición destinada a un servicio cuya interfaz es Fastly, en la que el encabezado Host contiene un puerto cerrado:


Petición del atacante:


GET / HTTP/1.1
Host: www.example.com:10000

Petición de Fastly destinada al origen:


GET / HTTP/1.1
Host: www.example.com
X-Forwarded-Host: www.example.com:10000

Respuesta de redireccionamiento del origen + Fastly:


HTTP/1.1 302 Found
Location: https://www.example.com:10000/en
X-Cache: MISS, MISS

Si Fastly, entonces, almacena la respuesta en caché, las posteriores peticiones válidas destinadas al recurso almacenado en caché se redirigen al puerto cerrado y se agota el tiempo de espera:


Petición + respuesta de usuario objeto del ataque:


GET / HTTP/1.1
Host: www.example.com

HTTP/1.1 302 Found
Location: https://www.example.com:10000/en
X-Cache: MISS, HIT

Solución


El 4 de agosto, Fastly implementa una solución en Varnish para que se devuelva el código de estado 421 «Direccionamiento de petición incorrecto» si el encabezado Host de la petición especifica un número de puerto en el que no se haya recibido la petición.
Más información
[1] Resumen: https://www.blackhat.com/us-20/briefings/schedule/index.html#web-cache-entanglement-novel-pathways-to-poisoning-19712

[2] Whitepaper: https://portswigger.net/research/web-cache-entanglement-novel-pathways-to-poisoning


Secuencia de eventos


21 de mayo de 2020 a las 13:30 UTC: notificación por parte de un investigador de seguridad externo. El equipo de seguridad de Fastly inició la investigación en el momento de la notificación.
5 de junio de 2020: Fastly inició un análisis para definir una solución que protegiera los orígenes de los clientes frente a las peticiones que exhibían este comportamiento.
18 de junio de 2020: se completó la investigación interna y se iniciaron las evaluaciones de mitigaciones y recomendaciones para aquellos clientes potencialmente afectados que fueron identificados.


15 de julio de 2020 a las 04:30 UTC: nos pusimos en contacto con los clientes que fueron identificados como potencialmente afectados por este incidente.


Del 16 de julio de 2020 al 31 de julio de 2020: Se desplegaron pruebas adicionales y se mejoraron los registros de peticiones que mostraran síntomas de esta vulnerabilidad.


Del 3 de agosto de 2020 a las 08:00 al 4 de agosto de 2020 a las 23:00 UTC: despliegue de la corrección de la vulnerabilidad en la red de Fastly y consecuente protección de todos los orígenes de los clientes a partir de ese momento.


Información de contacto


Si tienes alguna duda más, ponte en contacto con el personal de ingeniería de Fastly escribiendo a support@fastly.com o con el equipo de seguridad de Fastly a través de security@fastly.com.

Suscríbete a las advertencias de seguridad.

Al enviar la solicitud, das tu consentimiento para que tus datos se envíen a Fastly en los Estados Unidos y sean tratados conforme a nuestra Política de privacidad.

¿List@ para empezar?

Ponte en contacto o crea una cuenta.