Skip to main content

MLflow CVE-2026-2611

| EUVDEUVD-2026-30853 CRITICAL
Origin Validation Error (CWE-346)
2026-05-19 @huntr_ai GHSA-67c5-x5mf-rppq
9.6
CVSS 3.1 · Vendor: huntr_ai
View

Attack ChainAIDerived

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

  1. Access
    Lure victim to malicious page
  2. Delivery
    Browser issues cross-origin POST to localhost /ajax-api
  3. Exploit
    Bypass CORS via missing path check
  4. Execution
    Reconfigure Assistant to full access
  5. Persist
    Submit command via Claude Code sub-agent
  6. Impact
    Arbitrary code execution on host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

The victim must be running MLflow 3.9.0 (or another affected 3.x build) with the MLflow Assistant feature enabled and the Claude Code sub-agent integration active, with the server reachable on loopback (default mlflow server behavior). The victim must also visit or be redirected to an attacker-controlled webpage in the same browser session - the CVSS UI:R requirement is genuine. Limiting factors: no exploitation against a host that is not concurrently running the MLflow server; environments that disable the Assistant, restrict the server to a non-browser-reachable interface, or front it with a proxy enforcing strict Origin validation are not exploitable. No credentials are required (PR:N), and Scope:Changed reflects the pivot from the browser sandbox to OS-level command execution.

Impact

The CVSS 3.0 score of 9.6 (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H) reflects a network-reachable, low-complexity, unauthenticated attack that requires user interaction (visiting a malicious page) and crosses a trust boundary (Scope:Changed) to compromise the host running MLflow. This is consistent with classic browser-pivot CSRF-to-RCE chains against localhost services. No EPSS, KEV, or SSVC data was provided, and no public exploit code was identified at time of analysis - but the huntr.com bounty disclosure and the public commit diff give would-be attackers a clear roadmap, so real-world risk should be treated as elevated for any user who runs mlflow server locally with the Assistant enabled while browsing the web. One caveat: the CVSS vector lists AV:N, but actual exploitation requires the victim's browser to reach an MLflow instance the attacker cannot directly contact, so 'network' here means 'via the victim's browser session' rather than direct internet exposure - defenders should not assume an internet-facing MLflow Assistant is a precondition.

Exploit ScenarioDerived

A data scientist runs mlflow server locally with the Assistant enabled and, in another browser tab, visits an attacker-controlled page. That page issues cross-origin POSTs to http://127.0.0.1:5000/ajax-api/... which - because the wildcard CORS policy and missing /ajax-api/ path check let the request through - flip the Assistant into full-access mode and then submit a prompt to the Claude Code sub-agent that executes arbitrary shell commands on the developer's workstation. No public PoC was identified at time of analysis, but the upstream patch diff effectively documents the bypass path.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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 19, 2026

Cross-origin request forgery in MLflow 3.9.0's Assistant feature allows remote attackers to bypass loopback-only protections on /ajax-api endpoints when a victim visits a malicious webpage, ultimately achieving arbitrary command execution through the Claude Code sub-agent. The flaw stems from improper origin validation (CWE-346) and is fixed in version 3.10.0; no public exploit identified at time of analysis, though a detailed huntr.com report and an upstream commit are publicly available.

RemediationAI

Vendor-released patch: upgrade MLflow to 3.10.0 or later, which adds AJAX_API_PATH_PREFIX to the CORS-blocked endpoint list and replaces the wildcard allow_origins with an explicit localhost regex and configurable allow-list (commit 8f9c8a53af90842944101eb8b7d60706822c81bc). If immediate upgrade is not possible, disable the MLflow Assistant feature so the /ajax-api endpoints cannot be abused to reconfigure it, and avoid running mlflow server on the same host where users browse untrusted web content; binding the server to a non-default loopback port or behind an authenticating reverse proxy that enforces strict Origin/Referer checks also reduces exposure, with the trade-off of breaking legitimate UI access until reconfigured. Review the huntr writeup (https://huntr.com/bounties/8462addd-b464-4a84-b6a2-5529604e6e5a) for indicators and confirm any internal MLflow images are rebuilt against 3.10.0.

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 a widely used open-source platform for managing the machine learning lifecycle (experiments, model registry, deployment). The vulnerable component is the FastAPI-based MLflow server (mlflow/server/fastapi_security.py), specifically its CORS handling for the /ajax-api/* path prefix introduced for the MLflow Assistant. The root cause is CWE-346 (Origin Validation Error): the server was configured with allow_origins=['*'] and the CORS-blocking middleware's is_api_endpoint check only enforced restrictions on the /api/ prefix, leaving /ajax-api/ unprotected. Because the MLflow Assistant integrates with the Claude Code sub-agent - which can execute shell commands - bypassing the same-origin protection on the Assistant's configuration endpoint translates a CORS bug into full RCE on the user's host. The patch (commit 8f9c8a5) adds AJAX_API_PATH_PREFIX to is_api_endpoint and replaces the wildcard with a LOCALHOST_ORIGIN_PATTERNS regex plus an explicit allow-list.

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.6 CRITICAL
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Red Hat 9.6 CRITICAL

Primary rating from Vendor (huntr_ai).

CVSS VectorVendor: huntr_ai

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

Lifecycle Timeline

1
Patch available
May 19, 2026 - 11:16 EUVD

DescriptionCVE.org

In MLflow version 3.9.0, the MLflow Assistant feature introduced improper origin validation in its /ajax-api endpoints. This vulnerability allows a remote attacker to exploit cross-origin requests from a malicious webpage to interact with the MLflow Assistant running on a victim's local machine. By bypassing the loopback-only restriction, the attacker can modify the Assistant's configuration to enable full access, which in turn allows the execution of arbitrary commands via the Claude Code sub-agent. This issue is resolved in version 3.10.0.

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

A vulnerability in MLflow 3.9.0 allows remote attackers to execute arbitrary commands through web-based attacks, putting your machine learning infrastructure at direct risk of unauthorized access and data manipulation. Any organization running MLflow 3.9.0-particularly with internet-accessible instances-should treat this as an immediate critical risk. Upgrading to the patched version is essential to prevent potential compromise of your entire ML pipeline.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 90% exploitable
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.0%
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

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

Attack Technique

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