[SECURITE] 3 failles XSS dans Magento : patchez !

Imprimer Envoyer
Magento

3 failles de sécurité de type XSS sous Magento

 

3 failles XSS découvertes dans Magento


Bonjour à tous !

Ne vous fiez pas à l'image : le Downloader de Magento n'est pas sponsorisé par Google ! L'insert du logo de Google, sans intervenir sur le code de la page d'accueil du Downloader, est possible grâce à une faille. Bon, ici ce n'est qu'un logo... Mais qui dit insertion possible d'image dit insertion possible de Javascript notamment, et c'est tout l'objet de ce billet.

Security Focus a révélé hier mardi 24 février 3 failles de sécurité de type XSS sous Magento.

Brièvement, les risques relatifs liés à l'exploitation de ces failles sont multiples : vol d'identifiant de session, récupération des identifiants de l'administrateur, tout cela en exploitant la technique qui m'a permis d'insérer le logo de Google sur la page du Downloader, comme vous pouvez le voir sur l'image ci-dessus...

Ces failles sont accessibles depuis 3 pages Magento :

  • 1) Le Downloader : [chemindeMagento]/downloader

Pour tester, rendez-vous à l'url suivante :

[chemindeMagento]/downloader?return=%22%3Cscript%3Ealert(xss)%3C/script%3E.

Et hop ! Une fenêtre d'alerte avec le contenu "xss" et une page "déformée".

  • 2) La page de login de l'administration : [chemindeMagento]/admin
Pour tester, entrez :

"><script>alert('xss')</script>

dans le champ "Nom d'utilisateur", mettez n'importe quoi en mot de passe, envoyez, au reload de la page vous verrez une fenêtre d'alerte avec le contenu "xss" et à nouveau une page "déformée".

  •  3) La page de renvoi du mot de passe perdu pour l'administateur : [chemindeMagento]/admin/admin/index/forgotpassword/

Même procédure que 2).

Correctifs


En attendant un correctif officiel, Fragento vous propose des patchs maison :

  • 1) Correctif pour le Downloader

Dans le fichier : downloader\Maged\Model\Session.php
A la ligne n° 58

Remplacez le code :


if (!empty($_GET['return'])) {
            $this->set('return_url', $_GET['return']);
        }



Par :

if (!empty($_GET['return'])) {
            $this->set('return_url', htmlentities($_GET['return']));
        }

 

  • 2) Correctif pour la page de login


A défaut de modifier le noyau - ce qui empêcherait toute mise à jour, modifiez le template de l'administration.

Dans le fichier : app\design\adminhtml\default\default\template\login.phtml
Ligne : 54

Remplacez le code :

value="<?php echo $username ?>"


par :

value="<?php echo htmlentities($username) ?>"

 

  • 3) Correctif pour la page de renvoi du mot de passe

 

A défaut de modifier le noyau - ce qui empêcherait toute mise à jour, modifiez le template de l'administration.

Dans le fichier : app\design\adminhtml\default\default\template\forgotpassword.phtml
Ligne : 57

Remplacez le code :

value="<?php echo $email?>"

par :

value="<?php echo htmlentities($email) ?>"

 

Remarques

 

  • Vous êtes fortement invités à diffuser le lien de cet article afin d'éviter des déconvenues aux utilisateurs de Magento ayant un site en production
  • Si vous copiez/collez les bouts de codes, assurez-vous que les guillemets sont conservés
  • D'une manière générale n'accédez jamais ni au Downloader ni à l'Administration via un lien fourni par une personne tierce, mais toujours par un accès direct, pour éviter tout risque de phising.
  • Ces correctifs n'affectent pas les fonctionnalités de Magento
  • Retrouvez cet article sur le forum ici
 

Sécurisation complémentaire ET la plus efficace au final

Moins simple à mettre en oeuvre, il existe cependant une sécurisation radicale qui limite l'accès à l'administration et au Downloader, par authentification Http.

Vous trouverez un "mode d'emploi" réalisé par Philippe ici.

 

Conclusion

D'autant plus quand il s'agit d'e-commerce où c'est un business qu'il faut protéger, la sécurité est un élément clé. La réactivité de la Communauté Francophone de Magento a permis la publication de ce patch sur le forum en moins de 24 heures. C'est parce que Magento est open-source, que la Communauté peut (et doit !) participer à l'évolution de la solution.

Nous comptons sur la réactivité de Varien pour publier une version patchée au plus vite, et nous vous encourageons à appliquer le patch proposé.

Commentaires
RSS
Seul les utilisateurs enregistrés peuvent écrire un commentaire!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."