Skip to content

Remote Code Execution in electron

High severity GitHub Reviewed Published Jan 23, 2018 to the GitHub Advisory Database • Updated Jan 9, 2023

Package

npm electron (npm)

Affected versions

>= 1.7.0, < 1.7.11
>= 1.6.0, < 1.6.16
>= 1.8.0, <= 1.8.2-beta.3

Patched versions

1.7.11
1.6.16
1.8.2-beta.4

Description

Affected versions of electron may be susceptible to a remote code execution flaw when certain conditions are met:

  1. The electron application is running on Windows.
  2. The electron application registers as the default handler for a protocol, such as nodeapp://.

This vulnerability is caused by a failure to sanitize additional arguments to chromium in the command line handler for Electron.

MacOS and Linux are not vulnerable.

Recommendation

Update electron to a version that is not vulnerable. If updating is not possible, the electron team has provided the following guidance:

If for some reason you are unable to upgrade your Electron version, you can append -- as the last argument when calling app.setAsDefaultProtocolClient, which prevents Chromium from parsing further options. The double dash -- signifies the end of command options, after which only positional parameters are accepted.

app.setAsDefaultProtocolClient(protocol, process.execPath, [
  '--your-switches-here',
  '--'
])

References

Published to the GitHub Advisory Database Jan 23, 2018
Reviewed Jun 16, 2020
Last updated Jan 9, 2023

Severity

High
8.8
/ 10

CVSS base metrics

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

Weaknesses

CVE ID

CVE-2018-1000006

GHSA ID

GHSA-w222-53c6-c86p

Source code

No known source code
Checking history
See something to contribute? Suggest improvements for this vulnerability.