CVE-2026-55441: mise Task Command Injection Vulnerability (CVSS 8.6)
mise, a tool for managing multiple development dependencies (Node, Python, CMake, Terraform), has a critical flaw in versions before 2026.6.4 where tasks can execute arbitrary commands without user consent. The vulnerability bypasses mise's trust feature by loading task files from directories like mise-tasks/ or .mise/tasks/ without ever checking whether the user has approved that directory. When you simply list available tasks or use tab completion—even read-only operations—malicious code embedded in task definitions runs immediately. An attacker needs only to trick a developer into cloning a repository and checking what tasks are available; no additional user action is required beyond that normal workflow step.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.6 HIGH · CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-732, CWE-78, CWE-94
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-26 / 2026-06-26
NVD description (verbatim)
mise manages dev tools like node, python, cmake, and terraform. Prior to 2026.6.4, mise's trust feature gates config files (mise.toml, .tool-versions) through trust_check, but task-include files are loaded on a path that never reaches it. When a directory has a task-include dir (mise-tasks/, .mise/tasks/, …) but no config file, mise falls back to the default includes and renders each task's tera fields — and that tera environment has exec() registered. A {{ exec(command='…') }} in any rendered field runs arbitrary commands the moment the tasks are merely listed. There's no config file to gate on, so no trust prompt ever appears. Read-only commands trigger it: mise tasks, mise task ls, mise run, mise tasks --usage (the query shell completion runs on Tab). The victim only has to cd into a cloned repo and list or tab-complete a task. This vulnerability is fixed in 2026.6.4.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-55441 is a command injection vulnerability in mise's task-loading mechanism. The trust_check function, which normally gates access to config files (mise.toml, .tool-versions), is bypassed entirely for task-include directories. When mise encounters a task-include directory without a corresponding config file, it loads the default task includes and renders each task's Tera templating fields. The Tera environment in this code path has the exec() function registered, allowing {{ exec(command='...') }} directives in task YAML/TOML to execute shell commands during task enumeration. This occurs even during read-only operations such as mise tasks, mise task ls, mise run, and shell completion queries. The root cause is a logic gap: task loading on the fallback path never invokes the trust check, so no trust prompt is presented to the user, and execution happens at parse time rather than task invocation time.
Business impact
Any developer using mise who clones or pulls a malicious repository faces immediate code execution with their user privileges the moment they list tasks or trigger tab completion. This is particularly dangerous in development environments where developers routinely explore unfamiliar codebases. A compromised repository could exfiltrate credentials, steal source code, modify build outputs, or establish persistence without the developer's knowledge. The low interaction barrier (merely listing tasks is enough) and the common developer workflow of exploring a new repo make this a high-impact supply-chain vector. Teams relying on mise for onboarding or CI/CD environments are especially vulnerable.
Affected systems
mise versions prior to 2026.6.4 are affected. The vulnerability applies to any system running a vulnerable version of mise that encounters a task-include directory. Risk is highest in development environments, shared CI/CD runners, and team onboarding scenarios where developers regularly clone and explore repositories. Users on versions 2026.6.4 and later are not affected.
Exploitability
Exploitability is very high. The attack requires no special privileges, no complex interaction (listing tasks is routine), and no user interaction beyond entering a directory and running a common command. The payload is embedded in repository files that are naturally checked out when cloning. The attacker does not need to trick the user into running the task itself—execution happens during task enumeration. Shell completion, which many developers have enabled, triggers the vulnerability automatically. The CVSS 3.1 score of 8.6 (HIGH) reflects this low-friction attack surface with high impact.
Remediation
Upgrade mise to version 2026.6.4 or later immediately. The fix restores the trust check to the task-loading path, ensuring that task-include directories are gated by the same trust mechanism as config files. After upgrading, developers should review any repositories they recently cloned from untrusted sources and ensure no credentials or sensitive data were exposed. Teams should communicate the fix to all developers and CI/CD operators using mise.
Patch guidance
Apply mise version 2026.6.4 or any subsequent release. Verification: confirm the installed version with `mise --version`. Update via your system's package manager (e.g., `brew upgrade mise` on macOS, `cargo install mise@latest` for Rust installations, or your distribution's package manager). Once updated, verify the fix is in place by testing against a repository with a malicious task-include directory—the trust prompt should now appear before any task enumeration occurs. No breaking changes are expected; the update restores intended security behavior.
Detection guidance
Identify vulnerable installations by checking mise version (any version before 2026.6.4). Monitor for unexpected process execution spawned from mise task commands or shell completion handlers. Examine repositories on disk for task-include directories (mise-tasks/, .mise/tasks/, etc.) paired with suspicious Tera template syntax ({{ exec(...) }}) in task definitions. Review shell command history and process logs for command execution events coinciding with `mise tasks`, `mise task ls`, or shell completion events. In CI/CD logs, look for unexplained process execution during build initialization phases where tasks are typically enumerated.
Why prioritize this
This vulnerability should be prioritized as urgent. It combines a high CVSS score (8.6), zero-interaction exploitation (task listing is routine), and a common developer workflow (exploring new repositories). The trust bypass—a core security feature of mise—directly undermines developer confidence. Organizations with developers using mise, particularly those in open-source contribution or multi-team environments, face immediate risk. Remediation is straightforward (a single version upgrade) and carries no known operational burden, making delay unjustifiable.
Risk score, explained
The CVSS 3.1 score of 8.6 reflects: (1) low attack complexity (straightforward Tera payload injection), (2) no required privileges, (3) user interaction limited to routine task enumeration, (4) local attack vector with significant scope change (commands run with the user's full privileges across the system), and (5) high impact across confidentiality, integrity, and availability. The score correctly captures the severity despite the initial impression that task operations are read-only—execution happens at parse time, not invocation time.
Frequently asked questions
Do I need to run the malicious task for the exploit to work?
No. The exploit executes during task enumeration (when listing or tab-completing tasks), not when a task is invoked. Simply running `mise tasks` or pressing Tab in a directory with a malicious task-include is sufficient.
Does the trust prompt protect me if I upgrade?
Yes. Version 2026.6.4 extends the trust check to task-loading paths. Once upgraded, you will receive a trust prompt before mise loads tasks from an untrusted directory, giving you the chance to refuse.
What if I only use mise for specific tools (e.g., Node) and never run tasks?
You are still at risk if a cloned repository contains a task-include directory. Mere presence of the directory can trigger exploitation during routine directory operations. Upgrade regardless of your task usage.
Can I safely disable shell completion to avoid the vulnerability?
Disabling completion reduces one attack surface, but does not fully protect you. The vulnerability is also triggered by explicit `mise tasks` commands, which developers run regularly. Upgrade to 2026.6.4 for complete protection.
This analysis is based on the CVE record and vendor advisory. Users should verify compatibility and test patches in staging environments before production deployment. No exploit code or weaponized proof-of-concept is provided. Organizations should conduct their own risk assessment and consult official vendor advisories for definitive guidance. This information is provided as-is for defensive purposes only. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-45353HIGHElecterm Terminal Client Local Privilege Escalation Vulnerability
- CVE-2026-55895HIGHVim Netrw Code Injection Vulnerability (CVSS 7.8)
- CVE-2021-4480HIGHDräger Protector Software Local Privilege Escalation Vulnerability
- CVE-2021-4481HIGHDräger Protector Software Local Privilege Escalation Vulnerability
- CVE-2025-41265HIGHWaterfall WF-500 TX Host OS Command Injection (CVSS 7.2)
- CVE-2025-41266HIGHWaterfall WF-500 TX Host Command Injection Vulnerability Analysis
- CVE-2025-41267HIGHWaterfall WF-500 TX Host Command Injection Vulnerability
- CVE-2025-41279HIGHOS Command Injection in Waterfall WF-500 RX Host Administration WebUI