29 de enero de 2018

Ejecución remota de código en aplicaciones Electron

Electron, el conocido framework de aplicaciones de escritorio, en el que se basan Slack, Atom, Skype, Signal e incluso Visual Studio Code por ejemplo, han corregido una grave vulnerabilidad de ejecución remota de código que afecta a las versiones Windows que utilizan manejadores de protocolo personalizados.
Si hace unos meses alertábamos de las potenciales vulnerabilidades que se presentaban en el ecosistema de aplicaciones basadas en Electron, el reporte facilitado esta semana por Github, confirma esta tendencia.
En este caso, la vulnerabilidad (CVE-2018-1000006) reside en el uso de manejadores de protocolo personalizados, utilizados para identificar un URI, myapp://, asociado y registrado para una aplicación basada en Electron.
Inspeccionando los cambios en el código, se puede observar cómo era posible ejecutar código remotamente si un usuario hacía click en este tipo de URIs, ya que no se controlaba debidamente los parámetros de ejecución, en base a una blacklist.
Utilizando ciertos parámetros, como el parámetro de tipo debug, "gpu-launcher", se podrían lanzar instancias del sistema, como muestra el PoC realizado por CHYbeta
Otros investigadores, como wflki, han demostrado este tipo de vulnerabilidad en el wallet de criptomonedas, Exodus:
Electron ha publicado nuevas versiones (1.8.2-beta.4, 1.7.11 y 1.6.16) y urge a los desarrolladores a actualizar sus aplicaciones lo antes posible. También han publicado las contramedidas oportunas, para aquellos que no puedan actualizar por el momento.
Más información:
Protocol Handler Vulnerability Fix https://electronjs.org/blog/protocol-handler-fix
Recent protocol handler bug disclosed by Electron as seen in Windows Defender ATP https://twitter.com/WDSecurity/status/955909703359516673
Fuente: Hispasec