Un nuovo exploit mette a serio rischio di utenti di alcuni noti software basati su Electron, consentendo di aggirare i controlli di sicurezza!

Electron, per chi non lo conoscesse, è un framework di sviluppo multipiattaforma che consente di sviluppare applicazioni desktop complete di GUI in modo più semplice, offrendo una base da cui partire. Questo framework è attualmente utilizzato per lo sviluppo di software come Atom, Discord, GitHub Desktop, Microsoft Visual Studio Code, Slack, Skype, Twitch.tv e WhatsApp, il che rende attualmente tutti questi software potenzialmente attaccabili.

L’exploit, pubblicato da Trustwave, è stato corretto lato Electron ma gli sviluppatori che ne fanno uso dovrebbero aggiornare le loro applicazioni il più presto possibile. In poche parole, l’exploit potrebbe consentire lo scripting cross-site in alcune applicazioni attivando nodeIntegration, un metodo che permette all’applicazione di connettersi non solo ai propri moduli ma anche a quelli di Node.js, linguaggio in cui Electron consente di scrivere il back-end delle applicazioni.

“Le applicazioni sono essenzialmente web app, il che significa che sono soggette ad attacchi di cross-site scripting attraverso la mancata sanificazione dell’input fornito dall’utente. Un’applicazione include non solo l’accesso alle proprie API, ma anche l’accesso a tutti i moduli integrati di Node.js. Questo rende XSS (cross-site scripting) particolarmente pericoloso in quanto permetterebbe a un attaccante di fare alcune cose spiacevoli come eseguire comandi di sistema lato client. Atom aveva una vulnerabilità XSS non molto tempo fa, che faceva esattamente questo. È possibile rimuovere l’accesso a Node.js disattivando nodeIntegration: impostandolo a “false” nelle webPreferences dell’applicazione.”

Nonostante nodeIntegration sia di default a false, a volte è necessario impostarlo a true mettendo a rischio il sistema a causa di questo exploit. Attualmente la soluzione, come detto, si limita a non usare questa funzionalità fino a quando il problema non verrà risolto in modo totale.

A questo link potete trovare la lista (quasi infinita) si tutte le applicazioni basate su questo framework, mentre a questo link troverete il documento ufficiale con descritto il problema in questione, con anche alcune direttive sul come riconoscerlo e risolverlo.