CVE-2026-103929 mise permits untrusted local configuration to override default shell arguments
An attacker can execute arbitrary commands with developer privileges by manipulating untrusted local configuration to override default shell arguments in mise.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-103929?
CVE-2026-103929 is a high-severity command injection vulnerability in jdx mise, published on 14 Oct 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.
Official description
mise manages dev tools like node, python, cmake, and terraform. Prior to 2026.7.14, in the default non-safe mode, mise loads .mise.toml [settings] from an untrusted local project before trust approval and strip_local_only_settings removes only fields marked global_only. The unix_default_file_shell_args, unix_default_inline_shell_args, windows_default_file_shell_args, and windows_default_inline_shell_args settings were not marked global_only, allowing a repository to replace the default interpreter arguments used by trusted tasks that have no explicit shell, postinstall directives, template exec operations, or hooks that fall back to the default shell. When mise appends the trusted command after the attacker-controlled interpreter arguments, the attacker-selected command can execute first with the developer account's privileges even though the local configuration was never trusted. The separate path-sanitization hardening note in the advisory is outside this vulnerability. This issue is fixed in version 2026.7.14.
Which versions are affected by CVE-2026-103929?
2 open source packages ship an affected version, including mise.
| Package | Affected | Fixed in |
|---|---|---|
mise crates.io | All versions | 2026.7.14 |
mise crates.io | All versions | 2026.7.14 |
How do I fix CVE-2026-103929?
Upgrade mise to 2026.7.14 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2026-103929 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-103929 exists.
Sources
Also known as GHSA-g74g-rg72-j2p3.