CERTA : Vulnérabilité dans Joomla !
février 2008 par CERT-FR
1 Risque
* Exécution de code arbitraire à distance ;
* contournement de la politique de sécurité.
2 Systèmes affectés
Toutes les versions de Joomla ! de la branche 1.0 depuis la version 1.0.11.
3 Résumé
Une vulnérabilité dans Joomla ! permet d’exécuter du code arbitraire à distance.
4 Description
Un mécanisme dans Joomla !, appelé RG_EMULATION, permet de contourner le
paramétrage de la variable register_globals dans le fichier de configuration de
PHP. Lorsque la variable RG_EMULATION est positionnée à 1 dans le fichier
configuration.php (à la racine de Joomla !), il est possible d’exécuter du code
arbitraire à distance sur le serveur.
Dans les versions de Joomla ! antérieures à 1.0.11, la variable RG_EMULATION
était définie dans le fichier globals.php. Une évolution de Joomla ! d’une
version antérieure à 1.0.11 vers la version 1.0.11 ou supérieure entraîne la
suppression de la définition de la variable RG_EMULATION. Lorsque la variable
RG_EMULATION n’est pas du tout définie dans le fichier configuration.php,
celle-ci est positionnée par défaut à 1, ce qui permet l’exécution de code
arbitraire à distance.
5 Contournement provisoire
Il existe plusieurs contournements provisoires :
* dans le fichier configuration.php, vérifier que la variable RG_EMULATION
est positionnée à 0. Si elle n’est pas définie, ajouter la ligne :
$RG_EMULATION = ’0’ ;
* changer le comportement par défaut de Joomla ! lorsque la variable
RG_EMULATION n’est pas définie, en remplaçant 1 par 0 dans la ligne 27 du
fichier globals.php ;
* migrer vers la branche 1.5 de Joomla ! ou utiliser un autre gestionnaire de
contenu.
6 Solution
Mettre à jour en version 1.0.15.
7 Documentation
* Site de Joomla ! :
* Avis CERTA-2008-AVI-104 :