CVE-2026-112944: CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') in vitejs launch-editor
Description
### Summary `launch-editor` forwarded file paths directly to editors without sanitization. If a path resembles a CLI flag, editors like Vim may interpret it as a command, potentially causing unintended file overwrites or command execution. ### Impact #### Direct `launch-editor` users Only apps that match all of the following conditions are affected: - The attacker is able to create a file system entry (e.g. a file or directory) starting with `+` or `-` in the working directory - The user uses or the app specifies any of the following editors: - Vim (including gVim) - MacVim - Emacs (including Emacsclient) - Notepad++ (only if using a plugin exposing dangerous operations via plugin messages) - The first argument of `launchEditor` can start with `+` or `-` or the user is using WSL #### `launch-editor-middleware` users Only apps that match the following conditions are affected: - The attacker is able to create a file system entry (e.g. a file or directory) starting with `+` or `-` in the working directory - The user uses or the app specifies any of the following editors: - Vim (including gVim) - MacVim - Emacs (including Emacsclient) - Notepad++ (only if using a plugin exposing dangerous operations via plugin messages) - launch-editor older than v2.2.0 is used, or the user is using WSL #### Vite users Only apps that match the following conditions are affected: - The attacker is able to create a file system entry (e.g. a file or directory) starting with `+` or `-` in the working directory - The user uses or the app specifies any of the following editors: - Vim (including gVim) - MacVim - Emacs (including Emacsclient) - Notepad++ (only if using a plugin exposing dangerous operations via plugin messages) - The user is using WSL ### Details `launchEditor(file)` function passes the file name as-is to the editor if the file with that file name exists. If the file name starts with `-` (also `+` for Vim), the editor treats them as flags rather than positional arguments. For example, Vim treats arguments starting with `+` as an Ex command. As a result, an existing relative directory such as: ``` +call writefile(["SAFE_MARKER"],"LAUNCH_EDITOR_MARKER")|qa! ``` is not treated as a filename when passed to Vim. Vim executes the embedded Ex command. The following editor has a potentially destructive operation exposed to the CLI arguments: - Vim (including gVim) - MacVim - Emacs (including Emacsclient) - Notepad++ (only if using a plugin exposing dangerous operations via plugin messages) `launch-editor-middleware` v2.2.0+ converts the passed file path to an absolute path so those are not affected as long as the user is not using WSL. For WSL, `launch-editor` converts the paths to relative paths internally, so those are still affected. Vite 2.0.0+ uses `launch-editor-middleware` v2.2.0+ so the WSL users are only affected.
CVSS v4.0
Score 6.3medium
Affected software
vitejs
launch-editor
vitejs
vite
vitejs
vite-plus
pkg:npm/launch-editorRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The launch-editor component of vitejs allows users to open files with line numbers in editors from Node.js. Versions prior to 2.14.2 are vulnerable when an attacker can create a filesystem entry beginning with '+' or '-' in the working directory. Because launch-editor forwards the path without forcing it to be interpreted strictly as a positional filename, the editor's option parsing treats the attacker-controlled filename as a command-line flag. This can lead to unintended file overwrites or arbitrary command execution in affected editors such as Vim, gVim, MacVim, Emacs, Emacsclient, and Notepad++ (with certain plugins). The vulnerability is mitigated by forcing proper interpretation of the filename in version 2.14.2.
Potential Impact
An attacker able to create specially crafted filesystem entries can exploit this vulnerability to cause unintended file overwrites or execute arbitrary commands within the context of the selected editor. This could lead to code execution or data corruption on the affected system. The vulnerability affects multiple popular editors when invoked via launch-editor, increasing the risk surface.
Mitigation Recommendations
This vulnerability is fixed in vitejs launch-editor version 2.14.2. Users should upgrade to version 2.14.2 or later to remediate this issue. No additional mitigation steps are indicated by the vendor advisory.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-10-19T21:30:47.245Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6ad786742cdf04f6563a72d3
Added to database: 10/20/2026, 15:19:16 UTC
Last enriched: 10/20/2026, 15:33:24 UTC
Last updated: 10/20/2026, 22:33:44 UTC
Views: 13
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.