Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?

[SECURITE] 3 failles XSS dans Magento : patchez !
(1 lecteur(s)) (1) Invité(s)
Aller en basPage: 123
SUJET:

[SECURITE] 3 failles XSS dans Magento : patchez !

#9509
Gabriiiel
I love Magento.
Expert Magento
Messages: 4117
graph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin gabriel.bouhatous Formation Magento Audit Conseil gabriel.bouhatous Ask me :) Lieu: Paris

[SECURITE] 3 failles XSS dans Magento : patchez !

Il y a 5 Années, 9 Mois
Karma: 112  
Bonjour à tous,

Security Focus a révélé hier 3 failles de sécurité de type XSS sous Magento. Philippe de Wikigento a signalé ce rapport à travers ce billet.

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, que du bon en somme !

Ces failles sont accessibles depuis 3 pages Magento :

  • 1) Le Downloader : [chemindeMagento]/downloader

  • Pour tester, rendez-vous à l'url [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".
    (Insertion d'une image potentiellement "piégé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).

    Varien a été informé de l'existence de ces failles il y a près d'un mois mais j'ai téléchargé la 1.2.1.1 et ces failles sont toujours présentes dans cette version.

    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 ce sujet 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

  • Tout avis d'un autre développeur sur ces correctifs "rapides & maison" est bienvenue ! Je n'ai pas la prétention que ces correctifs soient les seuls possibles, et je ne garantis pas leur efficacité pleine et totale (même si après test toute injection de code est demeurée vaine)


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

    Il s'agit de protéger l'accès au chemin de l'administration et au Downloader par une authentification HTTP.

    Vous trouverez un "mode d'emploi" réalisé par Philippe ici.
     
    Dernière édition: 25/02/09 à  11:59 Par Gabriiiel.
    Expert Magento @ The e-Commerce Academy

    L'administrateur a désactivé l'accès public en écriture.
    #9521
    Gabriiiel
    I love Magento.
    Expert Magento
    Messages: 4117
    graph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
    Sexe: Masculin gabriel.bouhatous Formation Magento Audit Conseil gabriel.bouhatous Ask me :) Lieu: Paris

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 112  
    UP !

    Pour maximiser la visibilité de ce sujet très important.
     
    Expert Magento @ The e-Commerce Academy

    L'administrateur a désactivé l'accès public en écriture.
    #9529
    kameo
    Senior Boarder
    Messages: 63
    graphgraph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 0  
    Oui il est important que tous les utilisateurs / administrateurs / hébergeurs de Magento se mobilisent et fasse les correctifs, il est tellement fréquent (et je parles d'expérience) de voir des failles être diffusées mais jamais corrigées !

    Alors appliquez ce patch fournit par Gabriel et appliquez également, par principe de précaution, celui fournit sur Wikigento, vous dormirez mieux et votre business sera protégé.
     
    L'administrateur a désactivé l'accès public en écriture.
    #9531
    Geronimo
    Platinum Boarder
    Messages: 807
    graphgraph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 3  
    Ne pas avoir /admin dans le chemin (url) est déjà important.. l'url de l'admin n'étant pas connu ? on peut choisir le nom de son repertoire admin
     
    Dernière édition: 26/02/09 à  04:34 Par Geronimo.
    L'administrateur a désactivé l'accès public en écriture.
    #9532
    kameo
    Senior Boarder
    Messages: 63
    graphgraph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 0  
    Oui ça peut aider, dans le principe ne pas avoir un chemin par défaut n'est pas un mal mais protéger le chemin réel en plus est toujours mieux. imaginons qu'un jour ce soit le rewriting qui ait un bug, ou qu'une vulnérabilité permette de voir le chemin de l'admin, la protection par mot de passe continuera de marcher...

    Alors effectivement, on pourrait se dire que l'inverse est vrai, mais : A ma connaissance, jamais le mécanisme d'authentification d'apache 2 n'a été contourné à ce jour. Le mécanisme est propre, il fonctionne bien, il empêche les bruteforces et la recherche au hasard, c'est très pratique et robuste.

    En plus, protéger Magento par Magento (en changeant le chemin d'admin dans l'admin ;)) c'est un peu mettre tout ses oeufs dans le même panier. Protéger Magento par Apache, ça implique qu'il faudrait une faille dans Magento et une dans Apache pour risquer d'être compromis, ça devient sport ;)
     
    L'administrateur a désactivé l'accès public en écriture.
    #9534
    Geronimo
    Platinum Boarder
    Messages: 807
    graphgraph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 3  
    Je viens d'apporter la modification pour downloader même si l'accès était "bloqué" par une permission chmod

    Mais je vois qu'il y a un .htaccess à la racine de downloader... est il possible d'ajouter dans ce fichier un accès par mot de passe ? un accès restreint ?
     
    Dernière édition: 26/02/09 à  05:05 Par Geronimo.
    L'administrateur a désactivé l'accès public en écriture.
    #9535
    Geronimo
    Platinum Boarder
    Messages: 807
    graphgraph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 3  
    a supprimer
     
    Dernière édition: 26/02/09 à  05:05 Par Geronimo.
    L'administrateur a désactivé l'accès public en écriture.
    #9537
    kameo
    Senior Boarder
    Messages: 63
    graphgraph
    Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

    Re:[SECURITE] 3 failles XSS dans Magento : patchez !

    Il y a 5 Années, 9 Mois
    Karma: 0  
    En fait Magento multiplie les .htaccess dans pas mal de directory. Dans le principe, oui, on peut bien sur faire de l'authentification dans ce .htaccess.

    C'est une solution "semi propre". Propre en terme de sécurité mais non générique ou persistante car à la mise à jour de Magento, ce .htaccess va être écrasé par la nouvelle version et votre protection va sauter.

    Le "mérite" de la solution du LocationMatch, c'est qu'il ne touche pas au "Core" de Magento et donc qu'une mise à jour ne change rien à la protection apportée.

    Mais dans le principe ça marche sans soucis et c'est propre en terme de sécurité.
     
    L'administrateur a désactivé l'accès public en écriture.
    Revenir en hautPage: 123
    Modérateur: Gabriiiel, ILOA, zuiko