Un simple bogue pourrait conduire à une faille RCE sur les applications construites avec Electron Framework

Une vulnérabilité critique d’exécution de code à distance a été découverte dans le célèbre framework d’application web Electron qui pourrait permettre aux attaquants d’exécuter du code malveillant sur les ordinateurs des victimes.

Electron est un framework de développement d’applications open source qui alimente des milliers d’applications de bureau largement utilisées, notamment WhatsApp, Skype, Signal, Wordpress, Slack, GitHub Desktop, Atom, Visual Studio Code et Discord.

Outre ses propres modules, Electron framework permet également aux développeurs de créer des applications de bureau hybrides en intégrant le framework Chromium et Node.js à travers des API.

Puisque Node.js est un framework robuste pour les applications côté serveur, avoir accès à ses API indirectement donne aux applications basées sur Electron plus de contrôle sur le système d’exploitation installé sur le serveur.

Pour éviter un accès non autorisé ou non autorisé aux API Node.js, la structure Electron définit par défaut la valeur de "webviewTag" sur false dans son fichier de configuration "webPreferences", qui définit ensuite "nodeIngration" sur false .

Ce fichier de configuration avec les valeurs codées en dur de certains paramètres a été introduit dans le framework pour empêcher les modifications en temps réel par des fonctions malveillantes, c’est-à-dire en exploitant une faille de sécurité comme XSS (cross-site scripting).

De plus, si un développeur d’application saute ou oublie de déclarer "webviewTag : false" dans le fichier de configuration, même alors le framework considère par défaut la valeur de "nodeIntegration" comme fausse, pour prendre une mesure préventive.

Cependant, le chercheur de Trustwave, Brendan Scarvell, a publié un code de preuve de concept que les attaquants peuvent injecter dans des applications ciblées s’exécutant sans que "webviewTag" ne soit déclaré, en exploitant une faille de script inter-site.

L’exploit réactive « nodeIntegration » en cours d’exécution, ce qui permet aux pirates d’obtenir un contrôle non autorisé sur le serveur d’applications et d’exécuter des commandes système arbitraires.

Il convient de noter que l’exploit ne fonctionnerait pas si le développeur avait également opté pour l’une des options suivantes :

  • L’option nativeWindowOption est activée dans ses webPreferences.
  • Interception d’événements de nouvelle fenêtre et remplacement de event.newGuest sans utiliser la balise d’options fournie.

La vulnérabilité, repérée sous le nom de CVE-2018-1000136, a été signalée à l’équipe d’Electron par Scarvell plus tôt cette année et affectait toutes les versions d’Electron au moment de la découverte.

Les développeurs d’Electron ont corrigé la vulnérabilité en mars 2018 avec la sortie des versions 1.7.13, 1.8.4 et 2.0.0-beta.4.

Ainsi, les développeurs d’applications doivent s’assurer que leurs applications sont corrigées, ou du moins pas vulnérables à ce problème.

Pour plus de détails techniques sur la vulnérabilité Electron et le code d’exploitation PoC, vous pouvez aller sur le blog de Trustwave .

Il convient également de noter que le bug Electron n’a rien à voir avec la faille récemment découverte dans l’application Signal, qui a également récemment corrigé une vulnérabilité de script intersite critique qui conduit à l’exécution de code à distance, dont les détails techniques complets sont programmés pour être publiés exclusivement sur The Hacker News ce soir. Restez à l’écoute !

Dans la même rubrique

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 30 |

Actu en image