launch-editor: Windows existence check bypass leading to command injection (CVE-2026-112942)
An existence check bypass in launch-editor on Windows allows attackers to execute arbitrary commands by supplying crafted file paths ending in ..:line:column.
CVE search metadata
CVE search record: CVE-2026-112942. KEV: no. Product: launch-editor (<= 2.14.1), vite (<= 6.4.3, 7.0.0-7.3.6, 8.0.0-8.1.5, 8.2.0-8.2.3, 8.3.0-8.3.2), vite-plus (<= 1.0.0). Brief: launch-editor: Windows existence check bypass leading to command injection (CVE-2026-112942). Brief link: https://feed.craftedsignal.io/briefs/2026-10-launch-editor-bypass/
Triage facts
Revision 1- Applicability
- launch-editor (<= 2.14.1), vite (<= 6.4.3, 7.0.0-7.3.6, 8.0.0-8.1.5, 8.2.0-8.2.3, 8.3.0-8.3.2) +1
- Evidence
- Unknown
- Severity
- High
- Action
- Elevated
- Sources
- 2 public sources
- Freshness
- Revision 1Oct 20, 23:55 UTC
- Vulnerabilities
- 1 CVE
- Source quality
- A1Likely
The launch-editor package, which is a dependency for Vite and related tools, contains a high-severity vulnerability identified as CVE-2026-112942. The vulnerability allows an attacker to bypass the fs.existsSync() check on Windows by appending a crafted suffix, ..:line:column, to a file path. Under normal conditions, launch-editor validates that a target file exists before attempting to open it in an IDE or editor. However, the path manipulation vulnerability results in the validation logic incorrectly evaluating the path as a valid directory, allowing the subsequent execution of an editor command with attacker-controlled arguments.
When combined with secondary vulnerabilities involving improper character escaping (noted in GHSA-698v-4r3x-3vcv), this bypass facilitates OS command injection. This issue affects various versions of vite, vite-plus, and the standalone launch-editor package. Developers and security teams should prioritize patching these dependencies to prevent potential remote code execution in development environments.
Attack Chain
- An attacker identifies a web application or development environment utilizing a vulnerable version of
launch-editoron a Windows host. - The attacker crafts a malicious request parameter containing a file path string ending in
\\..:1:1or a similar variant. - The
launch-editor-middlewareprocesses the input and callspath.resolve(), treating the path as legitimate due to the suffix structure. - The
launch-editorcomponent strips the line and column suffixes, leaving a trailing\\..path segment. - The Windows
fs.existsSync()function validates the path as existing, successfully passing the internal security check. - The
launch-editorcomponent proceeds to construct a system shell command including the user-controlled filename. - The system shell executes the command, resulting in OS command injection if malicious characters were successfully passed through the process invocation.
Impact
The vulnerability poses a significant risk to developers and systems running affected Vite-based applications on Windows. Successful exploitation results in arbitrary OS command execution, potentially leading to unauthorized data access, environment compromise, or further lateral movement within a network. Numerous versions across the vite ecosystem are affected, including major releases from 6.x through 8.x.
Recommendation
- Update
viteto a non-vulnerable version (versions > 8.3.2, 8.2.3, 8.1.5, 7.3.6, or 6.4.3). - Update
launch-editorto versions > 2.14.1. - Update
vite-plusto versions > 1.0.0. - Audit logs for suspicious file system paths ending in
..:*or similar patterns being passed to developer tooling processes. - Monitor for unexpected child processes spawned by Node.js or development server processes.
Immediate actions
Patch launch-editor to 2.14.2 or later
Mitigations
Upgrade affected packages to the fixed versions specified in the brief
CVE-2026-112942