Un sous domaine de adobe.com présente une vulnérabilité d’injection de code JavaScript réfléchi (XSS Reflected) lors du processus d’obtention du plugin Flash qui n’est plus à présenter.
Depuis maintenant plusieurs mois/années, le plugin Flash Player de Adobe charge un démon sur les systèmes Windows qui s’exécute au lancement de la machine, et vérifie si la version du player actuellement installée est bien à jour.
La raison? Un très grand nombre de vulnérabilités et d’attaques se propagent par le biais des plugins périmés dans les navigateurs (PDF, Flash, Java, etc).
Il est donc particulièrement intéressant pour un assaillant de réussir à faire installer un « faux » plugin ou un plugin volontairement obsolète comportant une brèche, à ses victimes. Quoi de mieux que d’inciter la victime à « mettre à jour son plugin Flash » avec une backdoor directement depuis le site officiel d’Adobe ? C’est précisément ce que la vulnérabilité XSS détaillée ci-après permet de réaliser, en contrôlant et modifiant à volonté le contexte du navigateur de la victime.
Lorsqu’une mise à jour de Flash est requise, le petit assistant graphique sous Windows procède à l’installation. Une fois l’installation terminée, il ouvre d’emblée une fenêtre dans votre navigateur par défaut vers un sous-domaine de adobe.com. La page chargée est vouée à vérifier que le plugin fraîchement mis à jour est bien la dernière version.
L’installeur transmet des paramètres à cette page de vérification, notamment le « code de retour » de la mise à jour qui s’est réalisée. Ce code est directement injecté dans des scripts de la page sans être correctement validé et nettoyé.
Il est donc possible de forger son propre code JavaScript qui sera directement interprété dans la page :
https://get3.adobe.com/fr/flashplayer/completion/aih/?exitcode=1337&re=7331;alert(/Reflected XSS - Yann CAM @ASAfety/);&type=update&appid=200
Démonstration de l’injection :
La manipulation du contexte du navigateur donne un accès au cookie de la session :
La valeur « re » du paramètre GET est directement utilisée pour généré un code JavaScript dans la page, ainsi l’injection doit être syntaxiquement valide pour s’intercaler dans ce code :
Les équipes en charge du maintient du portail adobe.com et de ses sous-domaines ont été alertées pour combler la brèche.
Hi Yann,
Thank you very much for the report. We are looking into it now, and will let you know if we have any questions. In the meantime, we ask that you do not publicly disclose this potential issue, in order to protect Adobe’s customers. This has been assigned the Adobe tracking number 2985.
Please note: We add researchers to our Security Acknowledgments page (http://helpx.adobe.com/security/acknowledgements.html) once we have verified, reproduced, as well as fixed the submitted issue.
If your issue satisfies this criteria, we will email you a confirmation of your acknowledgement once the issue is fixed.
We appreciate your discretion and cooperation. Please let us know if you have any questions.
Thank you again,
Adobe Product Security Incident Response Team
Suite à de multiple échanges, la brèche a pu être comblée. La contribution a été placée sur la page des « Acknowledgement » :
Je salue l’équipe d’Adobe pour leur amabilité, leur intervention et leur gratitude.
Ressources :