Vulnerabilidades de riesgo crítico en Squid

Investigadores de seguridad han descubierto dos vulnerabilidades de riesgo crítico, en las versiones 2.7 a 3.5.284.0 a 4.12 y 5.0.1 a 5.0.3 de Squid. Las mismas han sido identificadas con los CVE-2020-15811 y CVE-2020-24606. La explotación exitosa de estos fallos, permitiría a un atacante remoto realizar ataques de envenenamiento de cache y denegación de servicios (DoS).

El CVE-2020-15811, trata de una vulnerabilidad del tipo HTTP Response Splitting la cual se da debido a una validación incorrecta de los datos antes de incluirlos en los encabezados HTTP. Esto podría ser aprovechado por un atacante remoto para realizar ataques de HTTP Request Splitting en el tráfico HTTP y HTTPS.

Los ataques de este tipo permiten al atacante forzar al navegador para que este realice solicitudes HTTP arbitrarias, “envenenando” la caché del navegador. Sin embargo, la gravedad de este fallo reside en que permitiría a cualquier cliente incluyendo a los scripts del navegador, sobrepasar la seguridad local del sistema y “envenenar” la caché del navegador o cualquier otra caché descendiente, desde una fuente arbitraria.

Este fallo afecta a las versiones, configuradas con el analizador HTTP “relaxed_header_parser” en «on” o “warn”. Además, también son vulnerables las versiones que no cuenten con el analizador HTTP configurado.

Por otro lado, el CVE-2020-24606 trata de una vulnerabilidad de denegación de servicios (DoS) y se da debido a que la funcion peerDigestHandleReply() del archivo peer_digest.cc maneja incorrectamente el indicador EOF (End Of File). Un atacante remoto podría aprovechar esto para realizar un ataque de denegación de servicios, consumiendo todos los ciclos de CPU disponibles durante el procesamiento de un mensaje de respuesta Cache Digest especialmente diseñado.

Este fallo afecta a las versiones de Squid, que utilizan cache_peer con la característica Cache Digest configurada.

Recomendaciones:

  • Actualizar Squid a las versiones 4.13 o 5.0.4, disponibles en la página oficial del fabricante.
  • En caso de no ser posible la actualización, se recomienda como medida de mitigación a estas vulnerabilidades:
    • Agregar la opción “no-digest” a todas las líneas con “cache_peer” dentro del archivo squid.conf o construir Squid con “–disable-cache-digests
    • Desactivar el analizador HTTP “relaxed_header_parser” en el archivo squid.conf: relaxed_header_parser off

Referencias:

Compartir: