CVE-2020-15174- Vulnerabilidad en la aplicación de escritorio de Discord le da el control de su PC a los hackers

Los desarrolladores de Discord, una popular plataforma VoIP y de chat, han corregido una falla crítica que exponía a los usuarios a ataques de ejecución remota de código. Masato Kinugawa, especialista en ciberseguridad y participante en múltiples programas de vulnerabilidades, desarrolló una cadena de exploits para describir el proceso de ataque, mismo que involucraría la explotación de varios errores.

La falla reside específicamente en Electron, el marco de software usado para la versión para escritorio de Discord. Aunque esta aplicación no es de código abierto, el código JavaScript usado por Electron sí es de código abierto y es usado para el desarrollo de aplicaciones con soporte para JavaScript, HTML, CSS, que es almacenado de forma local y puede extraerse y ser examinado.

Una de las configuraciones en la compilación de Electron <<contextIsolation>>, se estableció en falso, y esto podría permitir que el código JavaScript fuera de la aplicación influya en el código interno, como la función Node.js; función que fue diseñada para introducir contextos separados entre páginas web y código JavaScript. Al parecer, este comportamiento es peligroso porque Electron permite que el código JavaScript fuera de las páginas web use las funciones de Node.js independientemente de la opción nodeIntegration y al interferir con ellas desde la función anulada en la página web, podría ser posible lograr RCE incluso si nodeIntegration se establece en falso.

Kinugawa aún requería una forma de ejecutar JavaScript en la aplicación de escritorio, lo que llevó al hallazgo de un problema de scripts entre sitios (XSS) en la función de inserción de iframe, empleada para mostrar videos en el chat al publicar una URL de sitios como YouTube. Empleando Sketchfab, un visor de contenido 3D, Kinugawa pudo abusar de un XSS basado en DOM descubierto en la página de incrustaciones, completando así el ataque.

Identificada como CVE-2020-15174, la explotación de esta falla en combinación con otras dos vulnerabilidades permitió a Kinugawa explotar código remoto para esquivar las restricciones de seguridad y usar la falla XSS para acceder a una página web donde se almacenaba una carga útil RCE. Después de que Kinugawa presentó el reporte a través del programa de recompensas de Discord, los desarrolladores deshabilitaron las incrustaciones de Sketchfab, mitigando por completo la posibilidad de explotación.