HSC : Déni de service dans Squid
février 2009 par HSC
Date : 06-02-2009
Criticité HSC : 3/5 - moyenne
Avis public : Oui
Exploitation : Disponible et publique
Résumé : Les versions 2.7, 3.0 et 3.1 du relais HTTP Squid (http://www.squid-cache.org/) sont sensibles à un déni de service distant permettant à un utilisateur malveillant de planter le relais.
Source : SQUID
Objet : Squid
Description :
Le parseur de version HTTP a été réécrit dans Squid 2.7 et supérieurs,
et utilise les versions majeures et mineures de la requête HTTP pour
adapter le comportement. A l’entrée de la routine, les numéros de
version sont placés sur -1, et à la sortie, la macro assert() C/C++ est
appelée pour arrêter le programme si la version est toujours -1.
Le calcul du numéro de version est effectué sur des entiers signés, mais
un débordement d’entier est susceptible d’être provoqué : en envoyant la
requête GET http://serveur/ HTTP/1.4294967295 , la version mineure sort
à -1 et provoque l’arrêt du programme. Le processus de contrôle Squid
relance le fils 5 fois avant de stopper définitivement.
Le traitement intervient avant authentification ou autorisation, la
faille est donc exploitable par des utilisateurs anonymes pouvant
accéder au port TCP sur lequel Squid accepte les requêtes.
Le problème de débordement d’entier est également présent dans le
traitement des réponses des serveurs Web accédés, mais n’est pas
exploitable.
Références :
– http://www.squid-cache.org/Advisories/SQUID-2009_1.txt
Parade :
– La branche Squid 2.6 (et versions antérieures) ne sont pas concernées.
– Les versions 2.7-STABLE5 et 3.0-STABLE13 sont corrigées.
Risque : Déni de service d’une application à distance