Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-54557

CVE-2026-54557: mise Path Traversal Vulnerability

CVE-2026-54557 is a path traversal vulnerability in mise that allows attackers to create symlinks outside the install tree via malicious .tool-versions files. This article covers technical details, affected versions, and mitigations.

Published:

CVE-2026-54557 Overview

CVE-2026-54557 is a path traversal vulnerability [CWE-22] in mise, a developer tool version manager that handles runtimes such as node, python, cmake, and terraform. The flaw exists in the mise HTTP backend, which builds symlink destinations from a raw resolved version string for non-latest versions. When a repository-controlled .tool-versions file supplies an absolute path as the version, Rust's PathBuf::join discards the intended mise installs root. An attacker can force mise install to create symlinks outside the install tree, and when combined with bin_path, place executable symlinks under attacker-selected prefixes that may later be added to PATH.

Critical Impact

A malicious .tool-versions file can cause mise to write executable symlinks to attacker-chosen filesystem locations, enabling PATH hijacking against developers who run mise install on untrusted repositories.

Affected Products

  • mise (jdx/mise) versions prior to 2026.6.1
  • Unix-like systems where absolute path handling applies
  • Developer environments that consume repository-controlled .tool-versions files

Discovery Timeline

  • 2026-06-26 - CVE-2026-54557 published to NVD
  • 2026-06-26 - Last updated in NVD database

Technical Details for CVE-2026-54557

Vulnerability Analysis

The vulnerability affects the HTTP backend within mise, which resolves and installs developer tools referenced by .tool-versions files. Normal tool install paths sanitize the version string before constructing the target pathname. The HTTP backend deviates from that pattern and uses the raw resolved version string when building the symlink destination for non-latest versions. This inconsistency creates a path handling gap that a repository author can weaponize.

On Unix-like systems, Rust's PathBuf::join behavior compounds the issue. When the second argument to join is an absolute path, the function discards the preceding base path and returns the absolute value. As a result, the intended mise installs root is silently dropped whenever the raw version string is absolute.

The bin_path feature increases severity. It allows the attacker to control not only where the symlink lands but also to produce an executable symlink under a directory prefix chosen by the attacker. If a developer later adds that prefix to their PATH, the attacker-controlled binary executes under the developer's identity.

Root Cause

The root cause is inconsistent input sanitization between the standard install path routine and the HTTP backend's symlink construction. The HTTP backend trusts the raw version field from .tool-versions, and the underlying PathBuf::join semantics allow an absolute path to override the base install directory.

Attack Vector

Exploitation requires a developer to run mise install inside a repository containing a hostile .tool-versions file. User interaction is required, but no authentication or privileges are needed on the target beyond the developer's own permissions. The vulnerability is local in scope and impacts integrity, allowing symlink placement outside the expected directory tree.

Refer to the GitHub Security Advisory GHSA-f94h-j2qg-fxw3 for the maintainer's technical description.

Detection Methods for CVE-2026-54557

Indicators of Compromise

  • Presence of .tool-versions files containing absolute paths in the version field, such as entries beginning with /.
  • Symlinks created outside the mise installs root, particularly under directories intended for developer tool prefixes.
  • Unexpected executables appearing under directories that developers add to PATH after cloning third-party repositories.

Detection Strategies

  • Scan repositories and developer workstations for .tool-versions files and flag entries where the version token is an absolute path.
  • Audit filesystem locations outside ~/.local/share/mise/installs for symlinks whose targets reference mise-managed binaries.
  • Review shell history and CI logs for mise install invocations that preceded creation of unexpected symlinks or PATH modifications.

Monitoring Recommendations

  • Monitor developer endpoints for symlink creation events under sensitive directories such as /usr/local, /opt, and user-owned tool prefix directories.
  • Alert on process executions where mise writes to paths outside its declared installs root.
  • Track changes to shell profile files (.bashrc, .zshrc, .profile) that append new directories to PATH following repository clones.

How to Mitigate CVE-2026-54557

Immediate Actions Required

  • Upgrade mise to version 2026.6.1 or later on every developer workstation and CI runner.
  • Inventory .tool-versions files in all consumed repositories and reject entries whose version field resolves to an absolute path.
  • Audit developer environments for symlinks created outside the mise installs root and remove any that cannot be attributed to legitimate installations.

Patch Information

The issue is fixed in mise version 2026.6.1. The upstream fix is documented in the GitHub Security Advisory GHSA-f94h-j2qg-fxw3. Upgrading is the only fully effective remediation.

Workarounds

  • Avoid running mise install on repositories from untrusted sources until the upgrade is applied.
  • Review .tool-versions files before invoking mise and reject any absolute-path version entries.
  • Restrict CI pipelines to a curated allowlist of tools and prevent dynamic resolution through the HTTP backend where feasible.
bash
# Configuration example
# Upgrade mise to the fixed release
mise self-update
mise --version   # confirm output is 2026.6.1 or later

# Pre-flight check: reject .tool-versions entries with absolute paths
grep -RnE '^\S+\s+/' .tool-versions && echo 'Unsafe absolute path detected'

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.