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.
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',
'--'
])
| Score | Percentile |
|---|---|
| 92.32% | 99.72% |
| Base score | Version | Severity | Vector |
|---|---|---|---|
| 8.8 | 3.0 | — |
|
| Type | Value |
|---|---|
| GHSA | GHSA-w222-53c6-c86p ↗ |
| CVE | CVE-2018-1000006 ↗ |
| CWE id | Name |
|---|---|
| CWE-78 | Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') |
Vulnerable version ranges and first patched releases as published by GitHub.
| Ecosystem | Package | Vulnerable range | First patched | Vulnerable functions |
|---|---|---|---|---|
| npm | electron | >= 1.7.0, < 1.7.11 | 1.7.11 | — |
| npm | electron | >= 1.6.0, < 1.6.16 | 1.6.16 | — |
| npm | electron | >= 1.8.0, <= 1.8.2-beta.3 | 1.8.2-beta.4 | — |