Risque

  • Exécution de code arbitraire à distance ;
  • contournement de la politique de sécurité.

Systèmes affectés

  • les versions PHP 4.x, antérieures à 4.3.0 ;
  • les versions PHP 5.x, antérieures ou égales à la 5.1.6.

Résumé

Une vulnérabilité a été identifiée dans PHP. Celle-ci permettrait à une personne malveillante distante d'exécuter des commandes arbitraires sur le serveur Web vulnérable.

Description

PHP (venant de l'acronyme récursif PHP: Hypertext Preprocessor) est un langage généralement interprété par un serveur Web, afin de générer des documents comme des pages HTML.

Une vulnérabilité a été identifiée dans celui-ci. Elle concerne la fonction unserialize() se trouvant dans le fichier zend_alloc.c. Cette fonction fait appel à une autre fonction, nommée ecalloc(), qui ne vérifierait pas correctement certaines données avant d'allouer la mémoire. Une personne malveillante pourrait injecter des données afin de provoquer un débordement de cette mémoire et parvenir à exécuter des commandes arbitraires sur le serveur Web vulnérable. Cela est notamment rendu possible par les valeurs de variables Cookie envoyées au serveur.

Tout code PHP faisant appel à la fonction unserialize() serait vulnérable. Cela inclut en particulier plusieurs applications Web, dont phpBB, Invision Board, vBulletin, Serendpity, dotclear, etc.

Solution

Se référer aux mises à jour des éditeurs pour l'obtention des correctifs (cf. section Documentation). Une mise à jour provisoire est disponible sur le serveur CVS de PHP, ainsi que sur le site Hardened-PHP.

Documentation