mercredi 28 mars 2012

eZ Publish - Cross Site Scripting in URI « EzJSCORE » module


1.1.  Synopsis

Ce document présente une vulnérabilité découverte dans le produit CMS « eZ Publish ». Cette vulnérabilité est de type « Cross Site Scripting » réfléchi et permet d’exécuter du code dans le navigateur d’un utilisateur lorsque celui-ci est invité à consulter un lien malicieux.

1.2.  Impacts

Cette vulnérabilité permet d’exécuter du code dans le navigateur d’un utilisateur lorsque celui-ci est invité à consulter un lien malicieux forgé par une personne malveillante. Il est possible par exemple de récupérer son identifiant de session, ou de rediriger l’utilisateur piégé vers un site malveillant.

1.3.  Versions affectées

« eZ Publish » comporte le module « ezjscore » depuis la version 4.2.0. Les versions affectées sont donc :



  • eZ Publish Enterprise 4.6, 
  • eZ Publish Enterprise 4.5, 
  • eZ Publish Enterprise 4.4, 
  • eZ Publish Enterprise 4.3, 
  • eZ Publish Enterprise 4.2, 
  • eZ Publish Enterprise 4.1,
  • eZ Publish Community Project 2011.4
  • eZ Publish Community Project 2011.5
  • eZ Publish Community Project 2011.6 
  • eZ Publish Community Project 2011.7 
  • eZ Publish Community Project 2011.8 
  • eZ Publish Community Project 2011.9 
  • eZ Publish Community Project 2011.10
  • eZ Publish Community Project 2011.11
  • eZ Publish Community Project 2011.12
  • eZ Publish Community Project 2012.1
  • eZ Publish Community Project 2012.2
  • Ainsi que les versions 4.0 et 4.1 d’« eZ Publish » où  le module « ezjscore » a été manuellement installés.

    1.4.  Description

    Pour que le site publié sous « eZ Publish » soit vulnérable, il faut que les fichiers de configuration « module.ini » et/ou « site.ini » comportent :

    Figure 1 - site.ini



    Figure 2 - Module.ini
    Si ces  prérequis sont satisfaits à savoir :
    8  Activation du module « ezjscore » ;
    8  Autorisation d’accès à la méthode « ezjscnode » ;
    8  Pas de traitement des caractères spéciaux par le « template » de présentation des erreurs type « mauvaise vue »;

    Il est alors possible d’injecter du code javascript dans l’URL au niveau de l’appel d’une action « Ezjscnode » [HELLO|CALL|RUN]. Dans l’exemple qui suit, nous avons utilisé la méthode « ezjsc ::time », activée par défaut pour exploiter la vulnérabilité.
    http://www.monsite.fr/ezjscore/call<XSS>/ezjsc::time
    où :
    8  <XSS>est le code javascript que l’on veut faire exécuter par le client.
    8  Afin de pouvoir facilement injecter du code javascript, nous allons utiliser la balise simple :
    <IMG SRC=lienonerror= « code javascript » >où les caractères spéciaux seront encodes.

    L’URL suivante permet donc d’afficher le cookie de l’utilisateur :

    Exemple :

    1.5.  Recommandation

    Il est recommandé de nettoyer les caractères spéciaux lors du traitement du type d’action [HELLO|CALL|RUN] par lemodule « ezjscore ».

    1.6.  Crédits

    Cette vulnérabilité a été découverte par Yann MICHARD de la société OPPIDA.
    Cette information fait suite à l'annonce officielle de l'éditeur.

    Aucun commentaire:

    Enregistrer un commentaire