Risques
- Contournement de la politique de sécurité
- Exécution de code arbitraire à distance
Systèmes affectés
Toutes les versions de Joomla! de la branche 1.0 depuis la version 1.0.11.
Résumé
Une vulnérabilité dans Joomla! permet d'exécuter du code arbitraire à distance.
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.
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.
Solution
Mettre à jour en version 1.0.15.
Documentation
- CERTA http://www.certa.ssi.gouv.fr/site/CERTA-2008-AVI-104/
- Site de Joomla! : http://www.joomla.org/