Vulnérabilité dans le module "mod_cgi" d'Apache
Date : 22 Juin 2005
Une vulnérabilité a été découverte dans le serveur Apache, pouvant permettre à un attaquant distant de provoquer un déni de service.
En effet, lorsqu’un script CGI produit trop de données vers STDERR (sortie dédiée aux messages d'erreur) avant d’avoir écrit et fermé son STDOUT (sortie dédiée au messages ordinaires), la fonction "write()" du script CGI contenant les données à écrire dans STDERR se bloque, bloquant ainsi l’exécution du script.
Ceci peut en particulier se produire lorsqu’un script PERL produit trop de messages d’alertes vers " ssl_error_log" avant d’atteindre la partie de son exécution où les sorties sont produites. Dans ce cas, le script s’arrêtera et aucune donnée de sortie ne sera fournie à l’utilisateur final.
Etant donné que le serveur Apache attend d’autres données en entrée de l’application malicieuse, le CGI est bloqué. Si le problème se reproduit, et que le nombre maximum de connexions est atteint, le serveur HTTP tout entier se bloque et devient indisponible pour les utilisateurs légitimes (déni de service).
Selon le Cert-IST, ce problème est un problème de programmation des scripts, et il est de la responsabilité des développeurs de scripts de contrôler les données générées en sortie, en particulier les messages d’erreur ou d’avertissement. Pour cette raison, nous n'avons pas émis d'avis Cert-IST sur ce problème.
Pour plus d'information :
- Document de la base de données des bugs Apache : SECURITY: 4097+ bytes of stderr from cgi script causes script to hang
- Archive de SecurityFocus : http://www.securityfocus.com/bid/8725
- Avis de sécurité de Linux Mandrake : http://www.mandrakesecure.net/en/advisories/advisory.php?name=MDKSA-2003:096
- Bulletin de sécurité de HP : HPSBUX0310-285: SSRT3642 Potential Security Vulnerabilities Apache web server on HP-UX VVOS and Webproxy