MediumGHSA-7x97-j373-85x5CVE-2023-39956

Electron vulnerable to out-of-package code execution when launched with arbitrary cwd

Published 6 Sept 2023 · Updated 10 Sept 2026

Affected packages

Affected
<22.3.19
Fixed in
22.3.19
Update to the fixed version for your release line, for example:npm install electron@22.3.19
Affected
>=23.0.0-alpha.1 <23.3.13
Fixed in
23.3.13
Update to the fixed version for your release line, for example:npm install electron@23.3.13
Affected
>=24.0.0-alpha.1 <24.7.1
Fixed in
24.7.1
Update to the fixed version for your release line, for example:npm install electron@24.7.1
Affected
>=25.0.0-alpha.1 <25.5.0
Fixed in
25.5.0
Update to the fixed version for your release line, for example:npm install electron@25.5.0
Affected
>=26.0.0-alpha.1 <26.0.0-beta.13
Fixed in
26.0.0-beta.13
Update to the fixed version for your release line, for example:npm install electron@26.0.0-beta.13

Details

Impact

Apps that are launched as command line executables are impacted. E.g. if your app exposes itself in the path as myapp --help

Specifically this issue can only be exploited if the following conditions are met:

  • Your app is launched with an attacker-controlled working directory
  • The attacker has the ability to write files to that working directory

This makes the risk quite low, in fact normally issues of this kind are considered outside of our threat model as similar to Chromium we exclude Physically Local Attacks but given the ability for this issue to bypass certain protections like ASAR Integrity it is being treated with higher importance. Please bear this in mind when reporting similar issues in the future.

Workarounds

There are no app side workarounds, you must update to a patched version of Electron.

Fixed Versions

  • 26.0.0-beta.13
  • 25.5.0
  • 24.7.1
  • 23.3.13
  • 22.3.19

For more information

If you have any questions or comments about this advisory, email us at [security@electronjs.org](mailto:security@electronjs.org)

Is GHSA-7x97-j373-85x5 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected electron, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.