Packages / vite-plus / Security

ModerateVulnerabilityGHSA-r825-w8mm-5pxwCVE-2026-112944Published 20 Oct 2026

launch-editor: Editor CLI flag misinterpretation causing arbitrary command execution for some editors

Affected releases · vite-plus

  • 1.x1.0.0Fixed in 1.1.0
  • 0.3.x0.3.0 – 0.3.3No fix on this line yet
  • 0.2.x0.2.0 – 0.2.9No fix on this line yet
  • 0.1.x0.1.0 – 0.1.24No fix on this line yet
  • 0.0.x0.0.1No fix on this line yet

On 1.x, the newest line:

npm install vite-plus@1.1.0
1.x
  1. Affected

    1.0.0

    1 release

  2. Fixed

    1.1.0 – 1.3.0

    3 releases, latest

0.x
  1. Affected

    0.0.1 – 0.3.3

    40 releases

44 stable releases of vite-plus, oldest to newest, one row per major.

Is your project affected?

Paste your package.json, or type the range you declare for vite-plus. It is read in your browser and sent nowhere.

What happens

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.