Una vulnerabilidad en Electron abría la puerta a la ejecución de código en remoto
Electron es un framework basando en Chromium que permite construir aplicaciones para el escritorio empleando tecnologías web (HTML, CSS y JavaScript). Actualmente es utilizado por aplicaciones tan conocidas como Skype, Slack, Signal, Atom, Discord, Visual Studio Code y WordPress, por lo que una vulnerabilidad hallada en Electron puede terminar impactando a muchos usuarios, además de distintos perfiles.
El investigador en seguridad Brendan Scarvell descubrió una vulnerabilidad (CVE-2018-1000136) en Electron que permitía rehabilitar nodeIntegration, pudiendo llevar así a cabo ataques de ejecución de código en remoto. El origen del problema estaba en cómo interacciona Electron con los módulos de NodeJS, haciendo que “XSS particularmente peligroso”, ya que “la carga útil de un atacante puede permitir hacer cosas desagradables como requerir el módulo proceso hijo (child_process) para ejecutar órdenes del sistema desde el lado del cliente”. Las versiones afectadas son las anteriores a la 1.7.13, las anteriores a la 1.8.4 y las anteriores a la 2.0.0-beta.3.
El soporte de NodeJS está inhabilitado por defecto en Electron, sin embargo, utilizando la característica WebView, que permite insertar contenidos como páginas web y ejecutarlas en un proceso separado, se puede pasar atributos entre los que se encuentran nodeIntegration, por lo que hay una puerta para poder habilitarlo (viene inhabilitado por defecto) y luego poder ejecutar órdenes a nivel del sistema. Por otro lado, Electron también tiene su propia función “window.open()” personalizada que crear una nueva instancia de BrowserWindow. La ventana hija hereda todas las opciones de su padre por defecto, por lo que la función “window.open()” permite anular algunas de las opciones heredades pasándolas en un argumento de características.
Los problemas de seguridad fueron parcheados el pasado mes de marzo a partir de las versiones 1.7.13, 1.8.4 y 2.0.0-beta.3, sin embargo, el mayor problema no lo tienen los desarrolladores del framework Electron, sino los que crean aplicaciones con él, ya que en caso de no aplicar los parches correspondientes estarán distribuyendo aplicaciones vulnerables.
Via: www.muyseguridad.net