Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to malicious page
-
DeliveryBrowser issues cross-origin POST to localhost /ajax-api
-
ExploitBypass CORS via missing path check
-
ExecutionReconfigure Assistant to full access
-
PersistSubmit command via Claude Code sub-agent
-
ImpactArbitrary 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 |
| 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 |
| Exploit ScenarioDerived | A data scientist runs |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Primary rating from Vendor (huntr_ai).
CVSS VectorVendor: huntr_ai
Lifecycle Timeline
1DescriptionCVE.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- 5 pypi packages depend on mlflow (5 direct, 0 indirect)
Ecosystem-wide dependent count for version 3.9.0.
Executive ViewAI
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.
Apply vendor patch.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-2026-30853
GHSA-67c5-x5mf-rppq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB