Skip to main content

launch-editor CVE-2026-112944

| EUVDEUVD-2026-105045 MEDIUM
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-10-20 GitHub_M GHSA-r825-w8mm-5pxw
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Plant file named with +/- prefix in working dir
  2. Delivery
    launch-editor invoked with relative/WSL path
  3. Exploit
    Filename parsed as editor CLI flag
  4. Execution
    Vim/Emacs/Notepad++ executes flag as command
  5. Impact
    File overwrite or arbitrary command execution

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

Exploitation requires ALL of: (1) an attacker-controlled filesystem entry whose name begins with '+' or '-' existing in the working directory; (2) the selected editor being one that treats such arguments as flags - Vim, gVim, MacVim, Emacs, Emacsclient, or Notepad++ with a plugin exposing dangerous operations (editors like VS Code/'code' are not listed as affected); and (3) the path remaining relative or being converted to a relative WSL path (e.g., files on a Windows drive under WSL via /mnt/c), which is what keeps Vite and newer middleware callers exposed. Limiting factors: the malicious filename must already be present on disk, the vulnerable editor must be the one actually configured/selected, and VS Code and absolute-path invocations are not vulnerable - these preconditions (reflected as AT:P) substantially narrow real-world exploitability despite the unauthenticated network reachability of a dev server endpoint.

Impact

This is an argument/command injection flaw (CWE-88) in launch-editor, the dev-time 'open in editor' helper bundled with Vite and vite-plus. The provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L) scores 6.3 (Medium), and critically includes AT:P - attack requirements are present, meaning exploitation is NOT unconditional: the attacker must first place a filesystem entry whose name begins with '+' or '-' in the working directory, an affected editor (Vim/gVim, MacVim, Emacs/Emacsclient, or Notepad++ with a dangerous plugin) must be the one selected, and the path must stay relative or be converted to a relative WSL path. No EPSS score, KEV listing, or public POC was supplied in the intelligence, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The combination of PR:N/UI:N with AT:P is the key signal: although technically network-reachable and unauthenticated (via a dev server's open-in-editor endpoint), the precondition chain (malicious filename already on disk + specific editor + relative/WSL path) makes this an opportunistic, environment-dependent issue rather than a mass-exploitable one. Impacts are rated Low across C/I/A despite the description mentioning arbitrary command execution, because execution is constrained to the capabilities of the selected editor and the narrow preconditions. Net: a legitimate supply-chain/dev-tooling hardening priority for Vite users, but not a drop-everything emergency absent exploitation signals.

Exploit ScenarioDerived

In a project using Vite's dev server, an attacker gets a file named like '+call system("...")' written into the working directory (e.g., via a repo checkout, dependency, or upload). When the developer or an automatic middleware caller triggers launch-editor with that path and Vim/gVim/Emacs/MacVim/Notepad++ is the configured editor, the leading '+'/'-' name is parsed as an editor command-line flag instead of a filename, causing unintended file overwrite or command execution. No public exploit was provided, but the fix commit and advisory describe the mechanism precisely; WSL path conversion keeps Vite and newer middleware callers exposed.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 20, 2026

Argument injection in launch-editor (prior to 2.14.2), the Node.js 'open file in editor' helper shipped with Vite and vite-plus, allows an unauthenticated attacker who can place a file whose name begins with '+' or '-' into the project working directory to have that name interpreted as a command-line flag by the selected editor. When the reachable editor is Vim/gVim, MacVim, Emacs/Emacsclient, or Notepad++ with a plugin exposing dangerous operations, and the path stays relative (or is converted to a relative WSL path), this can lead to unintended file overwrite or arbitrary command execution in the developer's context. Exploitation is heavily preconditioned - the malicious filesystem entry must already exist, a vulnerable editor must be the configured one, and VS Code or absolute-path invocations are unaffected - so per the independent assessment it is rated AC:H with limited (low) confidentiality, integrity, and availability impact rather than a straightforward RCE; no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade the launch-editor dependency to 2.14.2 or later - the fixed release at https://github.com/vitejs/launch-editor/releases/tag/v2.14.2, delivered via PR 156 (https://github.com/vitejs/launch-editor/pull/156) and commit f6e6701bb1f16f2dd242b321374f1b6cca6eb6d4, which resolves every file name to an absolute path and prefixes relative/WSL-converted paths with './'. Vite and vite-plus users should bump their transitive launch-editor resolution (lockfile override or framework upgrade) rather than relying on the editor behaving safely. Until patched, compensating controls: bind dev servers to loopback only (vite --host 127.0.0.1) and keep them off untrusted or public networks, since the trigger is dev-server endpoint reachability - trade-off is losing LAN/device testing; configure LAUNCH_EDITOR (or the editor env var) to VS Code/'code', which the advisory does not list as affected - trade-off is losing your preferred editor integration; avoid creating or accepting files whose names start with '+' or '-', including in imported archives/branches; and ensure any file-picker/middleware code supplies fully absolute, pre-resolved paths. Note that upstream commit-level fixes are shipped in a tagged release here (2.14.2), so no PR-only caveat applies.

Affected VersionsENISA

vite-plus < 1.1.0
vite 8.0.0, < 8.1.6
launch-editor < 2.14.2
vite 8.3.0, < 8.3.3
vite 7.0.0, < 7.3.7
vite < 6.4.4
vite 8.2.0, < 8.2.4

Affected Packages

npm launch-editor fix: 2.14.2
npm vite fix: 6.4.4, 7.3.7, 8.1.6, 8.2.4, 8.3.3
npm vite-plus fix: 1.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

launch-editor is a small npm package whose get-args.js module builds the argv array passed to the developer's editor executable when a file is opened from a Vite (or vite-plus) dev-server middleware, typically triggered by a browser click on a stack trace or source reference. The fix commit adds a path.resolve() call so file names are normalized to absolute paths before argument construction, and changes path.relative('', fileName) to ./${path.relative('', fileName)} so that even relative results are anchored as an explicit path rather than a bare token. This is CWE-88 (Improper Neutralization of Argument Delimiters in a Command), the classic argument-injection class: the filename is appended as an argv element without a positional delimiter, so downstream option parsers in the editor treat a leading '+' or '-' as an option. Vim-family editors interpret '+cmd' as an Ex command to execute at startup, Emacs/Emacsclient accept options such as --eval or -l, and Notepad++ becomes dangerous when a plugin exposes operations that can be driven from the command line - hence the arbitrary command execution and file overwrite potential. The WSL branch matters because converted Windows-drive paths can remain relative (e.g. './../../../mnt/c/project/file.js' or the pre-fix '../../../mnt/c/project/file.js'), preserving the leading-token problem; CPE entries map the exposure to vitejs:launch-editor, vitejs:vite and vitejs:vite-plus since the library is consumed transitively by those frameworks.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.6 MEDIUM

AC:H reflects the multiple preconditions (malicious +/- filename on disk, specific affected editor, relative/WSL path); PR:N/UI:N as a dev-server endpoint can trigger it; impacts Low and editor-bounded.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Red Hat 6.7 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 16:02 EUVD
CVE Published
Oct 20, 2026 - 14:57 cve.org
MEDIUM 6.3

DescriptionCVE.org

launch-editor allows users to open files with line numbers in editor from Node.js. Prior to 2.14.2, when an attacker can create a filesystem entry beginning with plus or minus in the working directory, an affected editor is selected, and the path can remain relative or is converted to a relative WSL path, launchEditor forwards the path without forcing it to be interpreted as a positional filename. Editor option parsing then treats the attacker-controlled filename as a command-line flag, which can cause unintended file overwrite or arbitrary command execution by the selected editor. The affected editors are Vim and gVim, MacVim, Emacs and Emacsclient, and Notepad++ when a plugin exposes dangerous operations; WSL path conversion keeps Vite and newer middleware callers exposed. This issue is fixed in version 2.14.2.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 46,995 npm packages depend on launch-editor (561 direct, 46,457 indirect)
  • 99 npm packages depend on vite (33 direct, 68 indirect)
  • 2 npm packages depend on vite-plus (2 direct, 0 indirect)

Ecosystem-wide dependent count for version 2.14.2 and other introduced versions.

Threat Intelligence Overview

EPSS Score
0.7%
Top 47% exploitable
Prevalence
High
transitive dependency of Vite, a near-ubiquitous JS dev build tool
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

33
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy