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.
Only apps that match all of the following conditions are affected:
& or %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.
&calc.exe to %ENV%) and call launchEditor with something%ENV%.~-38%calc.exe), they can call launchEditor with something %CMDCMDLINE:~-38%calc.exe.%CD% and the subcommand (e.g. &calc.exe ), they can call launchEditor with ./%CD%{
"cwe_ids": [
"CWE-78"
],
"github_reviewed": true,
"github_reviewed_at": "2026-10-20T18:30:24Z",
"nvd_published_at": "2026-10-20T15:17:17Z",
"severity": "MODERATE"
}