Un bug en el servicio Microsoft Power Apps permitiría a un atacante escalar privilegios y conseguir acceso al correo de una víctima y a otros servicios de Microsoft, como OneDrive o Sharepoint.
Los usuarios de Microsoft Teams pueden desplegar aplicaciones con la plataforma Microsoft Power Apps que pueden ser compartidas y utilizadas por todo el equipo de la organización.
Cada una de estas aplicaciones utilizan un entorno propio conocido como «Dataverse». Este entorno se utiliza para el almacenamiento de variables y flujos de trabajo propios de la aplicación. Por ejemplo, un equipo puede querer contar con una aplicación que envíe un correo a todos los miembros cada vez que se suba un nuevo documento a Sharepoint.
El proceso de despliegue de una «Power App» pasa por el registro de la aplicación en «make.powerapps.com» para la creación de un entorno de los antes mencionado. Esto se realiza utilizando un iframe que pide al usuario su confirmación. Es aquí donde se encuentra la vulnerabilidad, ya que este iframe permite la comunicación con la ventana padre a través de un mensaje tipo ‘postMessage‘ de JavaScript.
Aprovechando esta vulnerabilidad, un atacante puede alterar la petición PUT utilizada para el registro de una nueva aplicación y cargar un iframe bajo su control que permita capturar el token de acceso de los miembros del equipo que abran la pestaña de esta aplicación maliciosa.
El investigador de seguridad Evan Grant de Tenable explica en su post cómo extender este ataque para conseguir accesos no autorizados a otros servicios de Microsoft como Outlook, OneDrive o Sharepoint.
Como administrador de una organización, actualmente es complicado conocer qué aplicaciones o flujos están utilizando los usuarios de su equipo. Sin embargo existe una característica que puede ayudar a identificar aquellos usuarios que ejecuten alguna aplicación maliciosa. Las aplicaciones registradas en la plataforma de Microsoft cuentan con una licencia libre que es aplicada por defecto. No es el caso de las aplicaciones maliciosas. Así, un administrador podría acceder al registro de flujos y aplicaciones para comprobar si alguna de ellas no tiene licencia.