Skip to main content

MLflow EUVDEUVD-2026-31642

| CVE-2026-2651 CRITICAL
Missing Authorization (CWE-862)
2026-05-25 @huntr_ai GHSA-8c7q-86fq-vvmh
9.0
CVSS 3.1 · Vendor: huntr_ai
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate as low-privilege MLflow user
  2. Delivery
    Enumerate target experiment IDs and artifact paths
  3. Exploit
    POST to /mlflow-artifacts/mpu/create bypassing authz check
  4. Install
    Complete multipart upload overwriting victim's model.pkl
  5. C2
    Wait for victim to mlflow.pyfunc.load_model
  6. Execute
    Pickle deserialization executes attacker code
  7. Impact
    Lateral movement in victim's ML pipeline

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

The MLflow tracking server must be started with the --serve-artifacts flag AND have the built-in authentication module enabled to create a multi-user authorization boundary worth bypassing; the attacker must hold valid credentials for any low-privilege account on that server (PR:L), must know or guess the target experiment ID and artifact path to overwrite, and must wait for a victim user or automation pipeline to load the poisoned model (UI:R) before arbitrary code execution materializes. Single-user MLflow installs, deployments that do not enable --serve-artifacts, and deployments fronted by an external authorization proxy that enforces per-experiment ACLs on /mlflow-artifacts/mpu/* are not exploitable.

Impact

The CVSS 9.0 score is driven by network attack vector, low complexity, scope change (one user's credentials affect another user's resources), and total CIA impact, which together describe a realistic cross-tenant compromise on a multi-user MLflow deployment. However, several signals temper the urgency: PR:L means an attacker must already hold a valid MLflow account, UI:R requires that a victim eventually load the poisoned model for code execution to land, and the deployment must actually run with --serve-artifacts and the built-in auth plugin enabled - a non-default combination. EPSS at 0.05% and SSVC Automatable:no indicate the issue is not suited to mass scanning, and there is no CISA KEV listing, so the realistic threat is targeted abuse inside shared ML platforms rather than internet-wide exploitation. Note one data inconsistency worth verifying with the vendor: the description states the issue is resolved in 3.10.0 while also citing affected versions <=3.10.1.dev0 - EUVD aligns with the <3.10.0 boundary, so 3.10.0 should be treated as the fixed line.

Exploit ScenarioDerived

An attacker with a low-privilege account on a shared MLflow tracking server running --serve-artifacts issues a POST to /api/2.0/mlflow-artifacts/mpu/create/{victim_experiment_id}/artifacts/model with a path such as python_model.pkl, then completes the multipart upload to overwrite a colleague's registered model with a malicious pickle payload. When a data scientist or CI pipeline subsequently calls mlflow.pyfunc.load_model on that model, the pickle deserializes and executes the attacker's code in the victim's context - a public proof-of-concept demonstrating the 403-bypass on these MPU routes is referenced in the huntr report.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jun 08, 2026

Cross-user artifact overwrite in MLflow versions prior to 3.10.0 allows authenticated users with --serve-artifacts mode enabled to abuse unprotected multipart upload (MPU) endpoints under /mlflow-artifacts/mpu/* and tamper with models owned by other users, enabling model supply chain poisoning and arbitrary code execution when poisoned models are deserialized. The SSVC framework classifies this as having a public proof-of-concept with total technical impact, though EPSS exploitation probability is currently only 0.05% (16th percentile) and no public exploit identified at time of analysis as actively weaponized.

RemediationAI

Vendor-released patch: upgrade to MLflow 3.10.0 or later, which adds the missing /mlflow-artifacts/mpu/ path prefixes to the proxy artifact path detection and wires POST on those routes to validate_can_update_experiment_artifact_proxy (see commit https://github.com/mlflow/mlflow/commit/d7290811d8f3c95366d80109424edc1fb1ad966f). Where immediate upgrade is not possible, the most effective compensating controls are to disable --serve-artifacts and front artifact storage with a separately authenticated object store (trade-off: clients must be reconfigured with direct storage credentials), or to block POST requests to /api/2.0/mlflow-artifacts/mpu/* and /ajax-api/2.0/mlflow-artifacts/mpu/* at a reverse proxy with per-user ACLs (trade-off: multipart uploads of large artifacts will fail and clients fall back to single-part uploads or break entirely). Tightening user provisioning so that only trusted accounts exist on shared trackers, and reviewing recent artifact writes for cross-experiment anomalies, reduces residual risk during the patch window.

Affected VersionsENISA

mlflow/mlflow unspecified <3.10.0

Affected Packages

pypi mlflow fix: 3.10.0, 3.11.0rc0
euvd mlflow_mlflow_unspecified fix: 3.10.0

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 whose tracking server can be run with the --serve-artifacts flag to proxy artifact storage through the server. The vulnerability is a CWE-862 Missing Authorization in the auth module (mlflow/server/auth/__init__.py), where the _is_proxy_artifact_path helper failed to recognize the multipart upload subpaths (mpu/create, mpu/complete, mpu/abort) under both /api/2.0/mlflow-artifacts/ and /ajax-api/2.0/mlflow-artifacts/ as proxy artifact paths, and the _get_proxy_artifact_validator did not map POST requests on those routes to validate_can_update_experiment_artifact_proxy. As a result, requests to MPU endpoints bypassed the per-experiment permission check that protects the rest of the artifact proxy surface, even though authentication itself was still required.

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

Vendor (huntr_ai) PRIMARY 9.0 CRITICAL
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Red Hat 9.0 CRITICAL

Primary rating from Vendor (huntr_ai).

CVSS VectorVendor: huntr_ai

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

1
Patch available
May 26, 2026 - 14:16 EUVD

DescriptionCVE.org

A vulnerability in MLflow versions <=3.10.1.dev0 allows unauthorized access to multipart upload (MPU) endpoints when the --serve-artifacts mode is enabled. The authorization logic does not enforce resource-level permission checks for /mlflow-artifacts/mpu/* endpoints, enabling attackers to overwrite artifacts belonging to other users. This can lead to unauthorized cross-user writes, model supply chain poisoning, and arbitrary code execution when compromised models are loaded. The issue is resolved in version 3.10.0.

Executive ViewAI

Why It Matters

MLflow versions prior to 3.10.0 contain a critical authorization vulnerability (CVE-2026-2651, CVSS 9.0) in artifact serving that allows authenticated users to modify models owned by other users. Although proof-of-concept code exists publicly, current exploitation likelihood is minimal (0.1% EPSS). If exploited, attackers could poison production models before deployment, enabling supply chain compromise and arbitrary code execution across dependent systems.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 84% exploitable
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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

Vendor StatusVendor

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