Vulnerability GHSA-698v-4r3x-3vcv

Medium Risk
MEDIUM RISK
CVSS Score: 6.0
Score Range: 4.0–6.9
Medium severity vulnerabilities (CVSS 4.0–6.9). Important issues that meaningfully reduce security confidence.
1 hour ago
October 20, 2026 at 06:30 PM UTC
launch-editor: escapeCmdArgs() omits % escaping on Windows
1.0.0 - 2.14.1
1.0.0 - 2.14.1

Summary

launch-editor: escapeCmdArgs() omits % escaping on Windows

Details

Summary

launch-editor did not escape % on Windows when passing an argument to cmd. When an environment variable contained a malicious value, it was possible that that content to be executed.

Impact

Only apps that match all of the following conditions are affected:

  • The user uses Windows
  • An attacker can place a file with the malicious filename containing & or %
  • Either of
    • An attacker can inject an environment variable with a malicious value
    • An attacker can add a NTFS alternate data stream to the file placed

Details

Unlike .sh files, .bat / .cmd files on Windows cannot be called directly using child_process.spawn and requires passing them as an argument of cmd.exe. To do so, launch-editor escapes the arguments passed to cmd.exe. But launch-editor did not escape % which is used for environment variables.

Because launch-editor checks if the argument matches an existing filename, the attack requires the attacker to be able to place a file.

  • If the attacker can inject an environment variable as well, they can include the subcommand in the env variable (e.g. set &calc.exe to %ENV%) and call launchEditor with something%ENV%.
  • If the attacker can place a NTFS alternate data stream to the file (e.g. a NTFS alternate data stream named ~-38%calc.exe), they can call launchEditor with something %CMDCMDLINE:~-38%calc.exe.
  • If the attacker can create a filename containing the %CD% and the subcommand (e.g. &calc.exe ), they can call launchEditor with ./%CD%

Timeline

Published
1 hour ago
October 20, 2026 at 06:30 PM UTC
Fixed (8.2.4)
14 days ago
October 06, 2026 at 04:48 AM UTC
Fixed (8.1.6)
14 days ago
October 06, 2026 at 04:51 AM UTC
Fixed (6.4.4)
14 days ago
October 06, 2026 at 05:49 AM UTC
Fixed (2.14.2)
Unknown
Unknown
Fixed (8.3.3)
Unknown
Unknown
Fixed (7.3.7)
Unknown
Unknown
Fixed (1.1.0)
Unknown
Unknown
Last Modified
1 hour ago
October 20, 2026 at 06:45 PM UTC