CSIRTCV

Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es

01/09/2014

Denegación de servicio en Squid

Se ha solucionado una vulnerabilidad de denegación de servicio en SQUID versiones 3.x (hasta 3.2.12) y 3.4 (hasta 3.4.6).

Riesgo: Alto
Squid es uno de los servidores proxys más populares, en gran parte por ser de código abierto y multiplataforma (aunque sus comienzos fueron para sistemas Unix).
El problema reside en la validación incorrecta de las entradas en el tratamiento de peticiones de tipo Range. Un atacante remoto podría aprovechar este problema para provocar condiciones de denegación de servicio.
Sistemas Afectados:

SQUID versiones 3.x (hasta 3.2.12) y 3.4 (hasta 3.4.6).

Referencias:

None

Solución:
Los problemas están solucionados en las versiones Squid 3.3.13 y 3.4.7, o se puede también aplicar los parches disponibles desde:
Squid 3.0:
http://www.squid-cache.org/Versions/v3/3.0/changesets/squid-3.0-9201.patch
Squid 3.1:
http://www.squid-cache.org/Versions/v3/3.1/changesets/squid-3.1-10488.patch
Squid 3.2:
http://www.squid-cache.org/Versions/v3/3.2/changesets/squid-3.2-11828.patch
Squid 3.3:
http://www.squid-cache.org/Versions/v3/3.3/changesets/squid-3.3-12680.patch
Squid 3.4:
http://www.squid-cache.org/Versions/v3/3.4/changesets/squid-3.4-13168.patch
Como contramedida se pueden añadir en el archivo squid.conf y antes de cualquier línea http_access allow,las siguientes líneas de control de acceso:
 
 acl validRange req_header Range \
  ^bytes=([0-9]+\-[0-9]*|\-[0-9]+)(,([0-9]+\-[0-9]*|\-[0-9]+))*$
 
 acl validRange req_header Request-Range \
  ^bytes=([0-9]+\-[0-9]*|\-[0-9]+)(,([0-9]+\-[0-9]*|\-[0-9]+))*$
 
http_access deny !validRange
Notas:
Squid Proxy Cache Security Update Advisory SQUID-2014:2
http://www.squid-cache.org/Advisories/SQUID-2014_2.txt
Fuente: Hispasec una-al-día

CSIRT-CV