Skip to content

Electron Vulnerable to Code Execution by Re-Enabling Node.js Integration

High severity GitHub Reviewed Published Mar 26, 2018 to the GitHub Advisory Database • Updated Sep 13, 2023

Package

npm electron (npm)

Affected versions

>= 2.0.0-beta.1, < 2.0.0-beta.5
>= 1.7.0, < 1.7.13
>= 1.8.0, < 1.8.4

Patched versions

2.0.0-beta.5
1.7.13
1.8.4

Description

A vulnerability has been discovered which allows Node.js integration to be re-enabled in some Electron applications that disable it.

For the application to be impacted by this vulnerability it must meet all of these conditions

  • Runs on Electron 1.7, 1.8, or a 2.0.0-beta
  • Allows execution of arbitrary remote code
  • Disables Node.js integration
  • Does not explicitly declare webviewTag: false in its webPreferences
  • Does not enable the nativeWindowOption option
  • Does not intercept new-window events and manually override event.newGuest without using the supplied options tag

Recommendation

Update to electron version 1.7.13, 1.8.4, or 2.0.0-beta.5 or later.

If you are unable to update your Electron version can mitigate the vulnerability with the following code.

app.on('web-contents-created', (event, win) => {
  win.on('new-window', (event, newURL, frameName, disposition,
                        options, additionalFeatures) => {
    if (!options.webPreferences) options.webPreferences = {};
    options.webPreferences.nodeIntegration = false;
    options.webPreferences.nodeIntegrationInWorker = false;
    options.webPreferences.webviewTag = false;
    delete options.webPreferences.preload;
  })
})

// and *IF* you don't use WebViews at all,
// you might also want
app.on('web-contents-created', (event, win) => {
  win.on('will-attach-webview', (event, webPreferences, params) => {
    event.preventDefault();
  })
})

References

Published to the GitHub Advisory Database Mar 26, 2018
Reviewed Jun 16, 2020
Last updated Sep 13, 2023

Severity

High
8.1
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2018-1000136

GHSA ID

GHSA-8xwg-wv7v-4vqp

Source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.