Elle n’est pas spécialement simple à exploiter, mais cette vulnérabilité peut avoir des conséquences désastreuses. Nichée dans l’outil collaboratif, elle permet via Power Apps d’accéder aux données entrées par un utilisateur dans Teams et, par ricochet, dans divers services tiers.
Avec 145 millions d’utilisateurs, Teams s’est définitivement imposé comme l’outil collaboratif de référence auprès de la majorité des organisations. Alors imaginez un peu si une faille de sécurité permettait de récupérer mails, discussions, SharePoint, OneDrive et autres données venues des API de services tiers… un véritable cauchemar en somme. Et c’est pourtant ce que permettait la vulnérabilité découverte par Evan Grant, chercheur chez Tenable.
Le problème ici, ce sont les onglets Power Apps. Lorsqu’un onglet est créé pour la première fois, il « exécute un processus de déploiement qui utilise les informations recueillies à partir du domaine make.powerapps.com pour installer l'application dans l’environnement de l'équipe ». Ce faisant, l’onglet ouvre un iframe sur une page d'un domaine spécifié comme approuvé dans le manifeste de cette application. Et c’est à partir de là que les choses deviennent intéressantes.
Une vérification incomplète
Le chercheur observe que l’iframe n’est chargé sur le makerPortalURL si et seulement si ce dernier commence par https://make.powerapps.com. Tout autre début d’URL dirigera vers une page vide. Mais la validation s’arrête à cette URL précise, sans vérifier l’ensemble du domaine. Ce qui permet au chercheur de créer une URL https://make.powerapps.com.fakecorp.ca/ qui va charger son propre contenu dans l’iframe.
Or la page make.powerapps.com communique avec Teams et l’iframe en utilisant Javascript PostMessage. Evan Grant, a l’aide d’une extension Chrome, était donc en mesure de lire ces PostMessage entre les deux services dès que l’onglet est installé et lancé. Avec ce message en particulier : « GET_ACCESS_TOKEN ». « L’iframe que nous avons substitué obtenait des token d'accès de sa fenêtre parente sans passer aucune sorte d'authentification » décrit le chercheur. Et à partir de là, c’est open bar sur le compte Teams de l’organisation ciblée.
Un impact considérable
Certes, cette attaque est particulièrement compliquée, Evan Grant lui-même le reconnaît. D’autant que la création d’onglets Power Tabs est limitée aux seuls utilisateurs authentifiés. Ce qui n’empêche en rien la compromission des informations d’authentification d’un utilisateur légitime, d’autant que la possibilité de créer des onglets est activée par défaut. Sans parler d’employés mécontents et d’autres menaces internes.
« L'impact potentiel d'une telle attaque pourrait être énorme, surtout si elle touche un administrateur de l'organisation » écrit le chercheur. « Qu'un si petit bogue initial (la validation incorrecte du domaine make.powerapps.com) puisse être utilisée jusqu'à ce qu'un attaquant exfiltre des e-mails, des messages Teams, des fichiers OneDrive et SharePoint est définitivement préoccupant ». Surtout, il permet la compromission de services tiers auxquels Teams est connecté.
Cette vulnérabilité a été découverte en mars dernier et a heureusement été corrigée par Microsoft depuis, un correctif qui a mené à la publication de cette recherche par Tenable.