Vulnerabilidad de ejecución remota de código en Electron, framework usado por WhatsApp, Skype, Slack o WordPress
Electron, un framework creado por GitHub y empleado para la creación de aplicaciones de escritorio multiplataforma como las de WhatsApp, Skype, Slack, WordPress, Visual Studio Code, Discord, Atom y tantos otros servicios, sufría hasta hace muy poco una vulnerabilidad que permitía la ejecución remota de código malicioso en el equipo de una víctima.
La vulnerabilidad, con identificador CVE-2018-1000136, fue descubierta por el investigador de seguridad Brendan Scarvell, de Trustwave, y se encontraba en versiones de Electron anteriores a 1.7.13, 1.8.4 y 2.0.0-beta.3. Y, por extensión, en los muchos servicios que las han utilizado para sus versiones de escritorio.
El problema parece haberse solucionado en las versiones 1.7.13, 1.8.4 y 2.0.0-beta.4, aunque depende de los desarrolladores implementar las correcciones en las aplicaciones con las que han usado la herramienta de GitHub. Hasta que esta implementación no tenga lugar, pueden quedar programas de escritorio construidos con Electron vulnerables.
Las aplicaciones de escritorio que se construyen mediante Electron emplean HTML, CSS y JavaScript. Adicionalmente, siempre que el desarrollador así lo requiera, puede entrar en juego Node.js para que la aplicación pueda acceder así a las partes de nivel inferior del sistema, incluso pudiendo ejecutar sus propios comandos shell.
Lo que el investigador de Trustwave descubrió es que este acceso, desactivado por defecto, podía reactivarse bajo determinadas circunstancias gracias a un archivo de configuración que tienen todas las aplicaciones de Electron.
Scarvell detectó que un atacante podía explotar una vulnerabilidad de secuencias de comandos entre sitios (porque como decíamos, las aplicaciones de escritorio creadas con Electron son en esencia aplicaciones web) para crear un nuevo elemento WebView creando sus propios permisos. Con determinados cambios lograrían la ejecución remota del código.
El problema fue parcheado en marzo de 2018 con el lanzamiento de las mencionadas versiones 1.7.13, 1.8.4 y 2.0.0-beta.4, por lo que los desarrolladores deberían haber actualizado para hacer inmunes sus aplicaciones o, al menos, asegurarse de que no son vulnerables a esta vulnerabilidad.