Alerte de sécurité PHP : Vulnérabilité dans les versions 4.2.0 et 4.2.1 de PHP

[ English Version ]

Date:
22 Juillet 2002
Logiciel:
PHP versions 4.2.0 et 4.2.1
Plates-formes:
Toutes

Le PHP Group a pris connaissance d'un trou de sécurité sérieux en PHP version 4.2.0 et 4.2.1. Un intrus pourrait exécuter un code arbitraire sur le serveur, avec les mêmes privilèges que celui qui exécute le serveur web. Cette vulnérabilité peut être exploitée pour compromettre le serveur web, et dans certaines circonstances, obtenir des droits spéciaux.

Description

PHP contient du code qui analyse finement les entêtes des requêtes HTTP POST. Le code est utilisé pour différencier les variables des fichiers qui sont envoyés par le navigateur, avec l'encodage "multipart/form-data". Cet analyseur ne vérifie pas suffisamment les données d'entrée, ce qui conduit à une vulnérabilité.

La vulnérabilité est exploitable par quiconque peut envoyer des requêtes HTTP POST à un serveur web utilisant PHP versions 4.2.0 et 4.2.1. Des utilisateurs, locaux ou distants, même derrière un pare-feu, pourraient obtenir des autorisations indues sur la machine.

Impact

Les utilisateurs, tant locaux que distants, peuvent exploiter cette vulnérabilité pour compromettre le serveur web, et, dans certaines circonstances, obtenir des autorisations indues. Jusqu'à présent, seule la plate-forme IA32 a pu passer les tests de sécurité. Cette vulnérabilité peut être utilisée sous IA32 pour crasher PHP et, dans la plupart des cas, le serveur web.

Solution

Le PHP Group a publié une nouvelle version PHP version, 4.2.2, qui inclus une correction pour cette vulnérabilité. Tous les utilisateurs des versions de PHP affectées sont encouragés à passer à cette nouvelle version. L'URL de téléchargement est : http://www.php.net/downloads.php sous forme de sources (tarballs), exécutable Windows et source patches pour les versions 4.2.0 et 4.2.1.

Autre solution

Si les applications PHP n'utilisent pas la méthode POST sur un serveur affecté, il est possible de simplement interdire les requêtes POST sur le serveur.

Sous Apache, par exemple, il est possible d'utiliser le code suivant dans le fichier de configuration principal, ou avec un fichier .htaccess placé suffisamment près de la racine :

<Limit POST>
   Order deny,allow
   Deny from all
</Limit>

Notez qu'une autre configuration ou/et un autre fichier .htaccess avec certains paramètres, peuvent annuler l'effet de l'exemple ci-dessus.

Crédits

Le PHP Group remercie Stefan Esser de e-matters GmbH pour la découverte de cette vulnérabilité.

To Top