CVE-2026-55448 Overview
CVE-2026-55448 is a command injection vulnerability [CWE-78] in mise, a tool that manages development environments for languages like Node.js, Python, CMake, and Terraform. Affected versions from 2026.3.15 through 2026.6.3 load the github.credential_command value from local project configuration before performing any trust decision. The tool then passes that value to sh -c when resolving a GitHub token. An attacker who commits a malicious .mise.toml file to a repository can execute arbitrary shell commands on a victim's machine. Execution triggers when the victim runs a GitHub-related mise command without a higher-priority GitHub token environment variable set.
Critical Impact
Arbitrary shell command execution on a developer workstation through a repository-supplied configuration file, with no explicit trust prompt.
Affected Products
- mise versions 2026.3.15 through 2026.6.3
- Development environments consuming untrusted .mise.toml project files
- Fixed in mise version 2026.6.4
Discovery Timeline
- 2026-06-26 - CVE-2026-55448 published to NVD
- 2026-06-27 - Last updated in NVD database
Technical Details for CVE-2026-55448
Vulnerability Analysis
The vulnerability resides in how mise handles the github.credential_command configuration key. Project-level .mise.toml files are parsed and their github.credential_command value is used before mise evaluates whether the project directory is trusted. When a GitHub token is required and no higher-priority environment variable such as GITHUB_TOKEN is set, mise invokes the configured command through sh -c. This grants shell interpretation of the attacker-controlled string, including pipes, redirections, and command substitution.
The vulnerability requires local access, user interaction, and specific environmental preconditions, reflecting the fact that the victim must clone a repository and run a GitHub-related mise command. Confidentiality and integrity impacts are high because command execution occurs in the developer's session with full user privileges.
Root Cause
The root cause is the ordering of operations: configuration values that drive process execution are read from a project-scoped file before the trust check runs. Sensitive configuration keys such as github.credential_command should be sourced only from user-scoped or explicitly trusted configuration. Passing configuration content directly to sh -c compounds the flaw by enabling shell metacharacter interpretation.
Attack Vector
An attacker publishes a repository containing a crafted .mise.toml similar in structure to a legitimate project configuration. The file defines github.credential_command with an arbitrary shell payload. When the victim clones the repository and executes any mise command that resolves a GitHub token, the payload runs under the victim's user account. The exploit does not require elevated privileges from the attacker, but does require the victim to lack a preset GitHub token environment variable. Refer to the GitHub Security Advisory GHSA-29hf-rm4x-xxph for advisory-level detail.
Detection Methods for CVE-2026-55448
Indicators of Compromise
- Presence of a github.credential_command key inside project-level .mise.toml files sourced from untrusted repositories.
- Unexpected child processes of mise spawning sh -c with commands unrelated to credential retrieval.
- Outbound network connections or file writes originating from mise-launched shell processes shortly after a git clone or repository checkout.
Detection Strategies
- Scan repositories and developer workstations for .mise.toml files containing the github.credential_command directive and review the invoked binary.
- Monitor process telemetry for mise parent processes spawning shells that execute non-credential-related commands.
- Alert on mise invocations followed by suspicious child activity such as reverse shells, credential access, or SSH key enumeration.
Monitoring Recommendations
- Log command-line arguments for all sh -c invocations on developer endpoints and correlate parent process lineage.
- Track file creation events for .mise.toml files in newly cloned repositories.
- Baseline expected mise behavior per developer and flag deviations, particularly outbound connections initiated by shell children of mise.
How to Mitigate CVE-2026-55448
Immediate Actions Required
- Upgrade mise to version 2026.6.4 or later on all developer and CI systems.
- Inventory existing checkouts for .mise.toml files containing github.credential_command and remove or vet the entries.
- Set the GITHUB_TOKEN environment variable at the shell profile level so it takes precedence over project configuration until patching completes.
Patch Information
The maintainers fixed the issue in mise version 2026.6.4 by ensuring the trust decision precedes any use of github.credential_command from project-level configuration. Details are documented in the mise GHSA-29hf-rm4x-xxph advisory. Upgrade using the standard installer or package manager for your platform.
Workarounds
- Avoid running mise commands inside untrusted repositories until the upgrade is applied.
- Export a valid GITHUB_TOKEN or equivalent higher-priority environment variable to prevent mise from resolving credentials through github.credential_command.
- Use mise trust policies and restrict auto-loading of project configuration in shared development environments.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

