Google a corrigé un bug dans son outil de retour d’information intégré à l’ensemble de ses services qui pourrait être exploité par un attaquant pour voler potentiellement des captures d’écran de documents Google Docs sensibles simplement en les intégrant dans un site web malveillant.
La faille a été découverte le 9 juillet par le chercheur en sécurité Sreeram KL, pour lequel il a reçu 3133,70 dollars dans le cadre du programme de récompense pour la vulnérabilité de Google.
De nombreux produits Google, dont Google Documents, sont dotés d’une option « Envoyer un commentaire » ou « Aider les documents à s’améliorer » qui permet aux utilisateurs d’envoyer un commentaire et d’inclure une capture d’écran, qui est automatiquement chargée pour mettre en évidence des problèmes spécifiques.
Mais au lieu de devoir dupliquer la même fonctionnalité dans tous ses services, la fonction de retour d’information est déployée sur le site principal de Google (« www.google.com ») et intégrée aux autres domaines via un élément iframe qui charge le contenu de la fenêtre contextuelle à partir de « feedback.googleusercontent.com ».
Cela signifie également que chaque fois qu’une capture d’écran de la fenêtre Google Docs est incluse, le rendu de l’image nécessite la transmission des valeurs RVB de chaque pixel au domaine parent (www.google.com), qui redirige ensuite ces valeurs RVB vers le domaine du retour, qui construit finalement l’image et la renvoie au format encodé en Base64.
Sreeram a cependant identifié un bogue dans la manière dont ces messages étaient transmis à « feedback.googleusercontent.com », permettant ainsi à un attaquant de modifier l’image vers un site web externe arbitraire, et à son tour, de voler et de détourner les captures d’écran de Google Docs qui étaient destinées à être téléchargées sur les serveurs de Google.
La faille provient notamment de l’absence d’en-tête X-Frame-Options dans le domaine de Google Docs, ce qui a permis de modifier l’origine cible du message et d’exploiter la communication croisée entre la page et la trame qu’elle contient.
Bien que l’attaque nécessite une certaine forme d’interaction de la part de l’utilisateur – c’est-à-dire cliquer sur le bouton « Envoyer un commentaire » – un exploit pourrait facilement exploiter cette faiblesse pour capturer l’URL de la capture d’écran téléchargée et l’exfiltrer vers un site malveillant.
Cela peut être réalisé en intégrant un fichier Google Docs dans un iFrame sur un site web malveillant et en détournant le cadre pop-up de retour d’information pour rediriger le contenu vers un domaine au choix de l’attaquant.
Le fait de ne pas fournir l’origine de la cible lors d’une communication interorigine soulève des problèmes de sécurité dans la mesure où cela divulgue les données envoyées à n’importe quel site web.
« Spécifiez toujours une origine cible exacte, et non *, lorsque vous utilisez postMessage pour envoyer des données vers d’autres fenêtres », indique la documentation de Mozilla. « Un site malveillant peut changer l’emplacement de la fenêtre à votre insu, et peut donc intercepter les données envoyées à l’aide de postMessage ».