Existence check bypass in launch-editor can lead to command injection
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-77.
Summary
launch-editor before 2.14.2 and vite-plus before 1.1.0 are affected, as are vite from 8.3.0 before 8.3.3, from 8.2.0 before 8.2.4, from 8.0.0 before 8.1.6, from 7.0.0 before 7.3.7, and before 6.4.4. On Windows, a file argument ending in a parent directory and a line and column suffix passes the existence check because launch-editor removes the suffix before existsSync runs. A remote attacker without privileges can combine this with a separate Windows percent-expansion flaw to inject OS commands (CWE-77).
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
launch-editor allows users to open files with line numbers in editor from Node.js. Prior to 2.14.2, launch-editor-middleware processes an attacker-controlled Windows file argument where the file argument ends in a parent-directory component plus a line-and-column suffix: the path is resolved while the suffix is still present, and launch-editor removes the suffix before its existsSync check, leaving the existing parent directory for existsSync and allowing the attacker-controlled file argument to pass filename existence validation without requiring the malicious filename to exist. The bypass can lead to OS command injection when combined with the separately described Windows percent-expansion flaw. This issue is fixed in version 2.14.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| vitejs | launch-editor | before 2.14.2 | 2.14.2 | Patch available | CNA |
| vitejs | vite | 8.3.0 to before 8.3.3; 8.2.0 to before 8.2.4; 8.0.0 to before 8.1.6; 7.0.0 to before 7.3.7; before 6.4.4 | 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4 | Patch available | CNA |
| vitejs | vite-plus | before 1.1.0 | 1.1.0 | Patch available | CNA |
| — | launch-editor (npm) | before 2.14.2 | 2.14.2 | Patch available | GHSA-587h-7wmj-h5pm |
| — | vite (npm) | 8.3.0 to before 8.3.3 | 8.3.3 | Patch available | GHSA-587h-7wmj-h5pm |
| — | vite (npm) | 8.2.0 to before 8.2.4 | 8.2.4 | Patch available | GHSA-587h-7wmj-h5pm |
| — | vite (npm) | 8.0.0 to before 8.1.6 | 8.1.6 | Patch available | GHSA-587h-7wmj-h5pm |
| — | vite (npm) | 7.0.0 to before 7.3.7 | 7.3.7 | Patch available | GHSA-587h-7wmj-h5pm |
| — | vite (npm) | before 6.4.4 | 6.4.4 | Patch available | GHSA-587h-7wmj-h5pm |
| — | vite-plus (npm) | before 1.1.0 | 1.1.0 | Patch available | GHSA-587h-7wmj-h5pm |
- launch-editor Vendorvitejs Affected before 2.14.2 Fixed in 2.14.2 Patch available CNA
- vite Vendorvitejs Affected 8.3.0 to before 8.3.3; 8.2.0 to before 8.2.4; 8.0.0 to before 8.1.6; 7.0.0 to before 7.3.7; before 6.4.4 Fixed in 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4 Patch available CNA
- vite-plus Vendorvitejs Affected before 1.1.0 Fixed in 1.1.0 Patch available CNA
- launch-editor (npm) Vendor— Affected before 2.14.2 Fixed in 2.14.2 Patch available GHSA-587h-7wmj-h5pm
- vite (npm) Vendor— Affected 8.3.0 to before 8.3.3 Fixed in 8.3.3 Patch available GHSA-587h-7wmj-h5pm
- vite (npm) Vendor— Affected 8.2.0 to before 8.2.4 Fixed in 8.2.4 Patch available GHSA-587h-7wmj-h5pm
- vite (npm) Vendor— Affected 8.0.0 to before 8.1.6 Fixed in 8.1.6 Patch available GHSA-587h-7wmj-h5pm
- vite (npm) Vendor— Affected 7.0.0 to before 7.3.7 Fixed in 7.3.7 Patch available GHSA-587h-7wmj-h5pm
- vite (npm) Vendor— Affected before 6.4.4 Fixed in 6.4.4 Patch available GHSA-587h-7wmj-h5pm
- vite-plus (npm) Vendor— Affected before 1.1.0 Fixed in 1.1.0 Patch available GHSA-587h-7wmj-h5pm
Remediation
Update launch-editor to 2.14.2. Update vite to 8.3.3, 8.2.4, 8.1.6, 7.3.7 or 6.4.4, matching the release line in use. Update vite-plus to 1.1.0.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA launch-editor (vitejs) Fixed in 2.14.2
- Fix · CNA vite (vitejs) Fixed in 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4
- Fix · CNA vite-plus (vitejs) Fixed in 1.1.0
- Fix · GHSA-587h-7wmj-h5pm launch-editor (npm) Fixed in 2.14.2 Advisory →
- Fix · GHSA-587h-7wmj-h5pm vite (npm) Fixed in 8.3.3 Advisory →
- Fix · GHSA-587h-7wmj-h5pm vite (npm) Fixed in 8.2.4 Advisory →
- Fix · GHSA-587h-7wmj-h5pm vite (npm) Fixed in 8.1.6 Advisory →
- Fix · GHSA-587h-7wmj-h5pm vite (npm) Fixed in 7.3.7 Advisory →
- Fix · GHSA-587h-7wmj-h5pm vite (npm) Fixed in 6.4.4 Advisory →
- Fix · GHSA-587h-7wmj-h5pm vite-plus (npm) Fixed in 1.1.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
Not affected: 1 product
- Red Hat Hardened Images
Timeline
- 2026-10-20 Threatist record created from CVE-2026-112942
- 2026-10-21 Alias added: GHSA-587h-7wmj-h5pm
- 2026-10-21 Fix available: npm/[email protected], npm/[email protected], npm/[email protected] +4 · GHSA-587h-7wmj-h5pm
- 2026-10-21 CVSS score added · GHSA-587h-7wmj-h5pm
- 2026-10-21 Weakness changed · GHSA-587h-7wmj-h5pm
- 2026-10-21 5 new references · GHSA-587h-7wmj-h5pm
- 2026-10-21 Affected versions changed · Red Hat
- 2026-10-21 CVSS score added · Red Hat
- 2026-10-21 CISA SSVC decision points changed
- 2026-10-21 Priority changed: MEDIUM → LOW
References
More vitejs vulnerabilities
- TI-2025-22386 Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` query KEVCVSS 3.1HIGH 7.5
- TI-2025-41248 Code injection in vitejs vite-plugin-react CVSS 3.1CRITICAL 9.8
- TI-2026-28350 Vite Affected by Arbitrary File Read via Vite Dev Server WebSocket CVSS 4.0HIGH 8.2
- TI-2025-41735 @vitejs/plugin-rsc has Arbitrary File Read via `/__vite_rsc_findSourceMapURL` Endpoint on Development CVSS 3.1HIGH 7.5
- TI-2025-21544 Vite bypasses server.fs.deny when using `?raw??` CVSS 3.1HIGH 7.5
- TI-2023-16938 Vite Server Options (server.fs.deny) can be bypassed using double forward-slash (//) CVSS 3.1HIGH 7.5
Sources
- CVE-2026-112942 · CVE Program
- CVE-2026-112942 · NVD
- FIRST EPSS
- GHSA-587h-7wmj-h5pm · GitHub Advisory Database · CC BY 4.0
- CVE-2026-112942 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences