Skip to main content

MLflow EUVDEUVD-2026-29180

| CVE-2026-2614 HIGH
Path Traversal (CWE-22)
2026-05-11 @huntr_ai GHSA-42h5-h8qh-vv9v
7.5
CVSS 3.1 · Vendor: huntr_ai
View

Attack ChainAIDerived

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

  1. Access
    Send CreateModelVersion POST with prompt tag
  2. Delivery
    Bypass source validation
  3. Exploit
    Store arbitrary filesystem path
  4. Execution
    Request artifact via GET
  5. Persist
    Serve sensitive file content
  6. Impact
    Exfiltrate confidential data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

Vulnerable MLflow server (versions ≤3.9.0) must be network-accessible to the attacker. No authentication, user interaction, or non-default configuration required-CVSS vector PR:N/UI:N confirms exploitation against default installations. The CreateModelVersion API endpoint must be reachable (standard in all MLflow deployments with model registry enabled). Attackers need ability to send HTTP POST requests to the server and subsequent GET requests to retrieve artifacts. The vulnerability requires the attacker to know or guess valid model names for the registry, though arbitrary names can be created. Exploitation is NOT limited by the mlflow.prompt.is_prompt tag being a privileged or rare feature-any request can include this tag. Filesystem paths targeted for read access must be readable by the MLflow server process user (typically the application service account). Does not require local access, SSH, or prior foothold.

Impact

Real-world risk is HIGH. CVSS 7.5 accurately reflects the attack surface: network-accessible (AV:N), low complexity (AC:L), no authentication required (PR:N), no user interaction (UI:N), and high confidentiality impact (C:H). Any exposed MLflow server running default configurations of versions ≤3.9.0 is vulnerable to arbitrary file read by remote attackers. The attack requires only crafting a single HTTP request with specific JSON payload-no exploit chain complexity. However, exploitation likelihood depends on MLflow server exposure: internet-facing deployments face immediate risk, while internal-only deployments require network access. No EPSS score, KEV status, or public exploit availability data provided in input, suggesting discovery through responsible disclosure via huntr.com bug bounty rather than active exploitation campaigns. The GitHub commit (6e801f4) is public and provides implementation details attackers could use to develop exploits. Defenders should prioritize this for any MLflow server handling sensitive data or deployed in multi-tenant environments, as successful exploitation grants read access to filesystem artifacts including credentials, configuration files, and private model data.

Exploit ScenarioDerived

An attacker identifies an internet-accessible MLflow server running version 3.9.0 through version fingerprinting. They send a CreateModelVersion HTTP POST request to the /api/2.0/mlflow/model-versions/create endpoint with JSON payload containing 'name': 'exfiltrate', 'source': '/etc/passwd', and 'tags': [{'key': 'mlflow.prompt.is_prompt', 'value': 'true'}]. The server accepts this request, storing /etc/passwd as the model version source without validation. The attacker then issues a GET request to /get-artifact or /model-versions/get-artifact endpoint referencing the created model version. The get_model_version_artifact_handler() function retrieves and returns the contents of /etc/passwd. The attacker repeats with different paths (e.g., /proc/self/environ for environment variables, application config files, SSH keys) to exfiltrate sensitive data.

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

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

Alert me

AnalysisAIv1 – May 11, 2026

Remote unauthenticated attackers can read arbitrary files from MLflow server filesystems in versions 3.9.0 and earlier. By submitting a CreateModelVersion request with the tag 'mlflow.prompt.is_prompt' and an arbitrary local filesystem path as the source, attackers bypass validation logic. The get_model_version_artifact_handler() function later serves files from that path without checking prompt status, enabling full confidentiality breach. Fixed in version 3.10.0 per commit 6e801f4 which blocks file:// URIs and absolute paths for prompt sources. CVSS 7.5 (High) reflects network attack vector with no authentication or user interaction required.

RemediationAI

Upgrade to MLflow version 3.10.0 or later immediately. The fix in commit 6e801f4 blocks file:// URIs and absolute paths for prompt sources and adds path traversal validation for URL-schemed sources. Installation command: pip install --upgrade mlflow>=3.10.0 (for Python environments) or update container images to mlflow:3.10.0+ tags. If immediate upgrade is not feasible, implement network-level compensating controls: (1) restrict MLflow server access to authenticated internal networks only via firewall rules or VPN-blocks remote unauthenticated attack vector but reduces legitimate external access; (2) deploy a reverse proxy (nginx/Apache) that inspects and blocks CreateModelVersion POST requests containing the 'mlflow.prompt.is_prompt' tag from untrusted sources-requires custom request filtering logic and may break legitimate prompt workflows; (3) run MLflow server processes in sandboxed containers with minimal filesystem access using read-only root filesystems and explicit volume mounts for required paths only-limits blast radius but requires infrastructure reconfiguration. All workarounds have operational trade-offs; vendor-released patch is the definitive solution. Verify fix deployment by testing that CreateModelVersion requests with prompt tags and file:// or absolute path sources return HTTP 400 errors as shown in commit tests.

Affected VersionsENISA

mlflow/mlflow unspecified <3.10.0

Affected Packages

pypi mlflow fix: 3.10.0
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 platform for managing machine learning lifecycle, including model versioning and artifact storage. The vulnerability exists in the mlflow/server/handlers.py module's _create_model_version() function. When processing CreateModelVersion requests, MLflow conditionally validates source paths based on the presence of the 'mlflow.prompt.is_prompt' tag (CWE-22: Improper Limitation of a Pathname to a Restricted Directory). Prior to 3.10.0, the validation logic inverted the check-prompts were NOT validated while regular model versions were. Attackers exploited this by tagging requests as prompts to store arbitrary filesystem paths (e.g., /etc/passwd, file:///proc/self/environ) in the model version metadata. The separate get_model_version_artifact_handler() function retrieves and serves files from the stored source path without re-verifying prompt status or path safety, creating a path traversal vulnerability. The fix introduces explicit blocking of file:// URIs and absolute paths for prompt sources, plus path traversal validation for sources with URL schemes.

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Red Hat 7.5 HIGH

Primary rating from Vendor (huntr_ai).

CVSS VectorVendor: huntr_ai

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

Lifecycle Timeline

2
Patch available
May 11, 2026 - 20:02 EUVD
CVE Published
May 11, 2026 - 19:02 nvd
HIGH 7.5

DescriptionCVE.org

A vulnerability in the _create_model_version() handler of mlflow/server/handlers.py in mlflow/mlflow versions 3.9.0 and earlier allows an unauthenticated remote attacker to read arbitrary files from the server's filesystem. The issue arises when a CreateModelVersion request includes the tag mlflow.prompt.is_prompt, which bypasses source path validation. This enables an attacker to store an arbitrary local filesystem path as the model version source. The get_model_version_artifact_handler() function later uses this source to serve files without verifying the model version's prompt status, leading to a complete confidentiality compromise. This issue is fixed in version 3.10.0.

Blast Radius

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

Ecosystem-wide dependent count for version 3.10.0.

Executive ViewAI

Why It Matters

MLflow versions 3.9.0 and earlier contain a critical path traversal vulnerability that allows unauthenticated remote attackers to read arbitrary files from the server's filesystem. An attacker can exploit this by crafting malicious CreateModelVersion requests to exfiltrate sensitive data such as credentials, configuration files, or intellectual property stored on the MLflow server, creating a direct confidentiality breach with no authentication barrier.

Business Impact: High
Compensating Controls

Vendor-released patch: MLflow version 3.10.0. If immediate upgrade is not possible, implement network-level controls to restrict MLflow API access to trusted internal networks only, and disable or restrict the CreateModelVersion endpoint until patching is complete. Monitor all CreateModelVersion API requests for suspicious 'mlflow.prompt.is_prompt' tag usage with file paths containing '/' or 'file://' schemes.

Threat Intelligence Overview

EPSS Score
0.0%
Top 88% exploitable
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA POC (1) Vendor GitHub

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 Yes
EPSS 0.0%
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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