Sécurité: une série de failles corrigées dans PHP

Date : mardi 21 décembre 2004 @ 08:38:42 :: Sujet : Php, Mysql, ...

Hardened-PHP, développeur d'une version sécurisée publie dans son alerte une série de failles et notamment :

- CAN-2004-1018 : La fonction pack() ne valide pas correctement ses arguments ce qui peut conduire à un débordement d’entier qui aboutit à un dépassement de tampon dans le tas. Un attaquant peut alors exécuter du code arbitraire avec les droits du serveur WEB.
La fonction unpack() comporte la même faille et permet ainsi une fuite d'information du contenu de la mémoire du processus apache.

- CAN-2004-1063 : Le safe_mode PHP permet de restreindre l'exécution de binaires à un répertoire spécifié par le paramètre safe_mode_exec_dir.
Il est cependant possible de contourner cette restriction en injectant des commandes shell dans le nom de répertoire courant.

- CAN-2004-1064 : Le safe_mode PHP contrôle le chemin des fichiers ouverts ; lors de ce contrôle il tronque les chemins trop longs (>MAXPATHLEN).
Si un script utilise une inclusion tel que : include "modules/$userinput/config.inc.php"; il est possible de tromper le safe_mode, en fournissant un chemin trop long. Il sera alors troqué et passera les tests du safe_mode alors qu’en réalité, ce chemin pointe vers un fichier normalement pas accessible.

- CAN-2004-1019 : La fonction unserialize() peut être détournée afin de libérer arbitrairement un bloc de mémoire conduisant ainsi à l'exécution de code avec les droits du serveur WEB.
Cette vulnérabilité est d'autant plus dangereuse que les scripts PHP, utilisant la fonction unserialize() avec pour paramètre une entrée directement fournie par l'utilisateur, sont très courant.
Par exemple :
 - phpBB2
 - Invision Board
 - vBulletin
- ...

Découvertes le 15 décembre, les failles ont été corrigées le jour même. Elles affectent PHP 4.3.9 et les versions antérieures qui doivent donc être remplacées par la mouture 4.3.10. Même chose pour PHP 5.0.2 et ses versions antérieures, qu'il faut donc faire évoluer vers PHP 5.0.3. Toutes deux sont disponibles en téléchargement


Nota bene : NPDS n'utilise pas la fonction pack, unpack et unserialize() et les includes sont largements filtrés ...





Cet article provient de NPDS

L'URL pour cet article est : http://www.npds.org/article.php?sid=1129