Risque

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

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