MLflow
CVE-2025-11200
CRITICAL
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed MLflow server with basic auth
-
ExploitAttempt default/weak admin credentials
-
ExecutionGain authenticated admin session
-
ImpactAccess or tamper with models and experiments
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Password strength requirements
|
| Exploitation Conditions | Exploitation requires an MLflow server running the built-in basic authentication module (mlflow/server/auth) AND a target account protected by a weak or default password - specifically the shipped default admin credential 'password' or any short password of 4+ characters that the pre-patch policy allowed. The limiting factors that reduce real-world risk: MLflow's basic auth must be explicitly enabled and reachable by the attacker, and the attack fails entirely if operators changed the default admin credential to a strong password, since the underlying check is credential guessing/brute force rather than a true authentication-logic bypass. Networks that front MLflow with an external IdP or reverse-proxy auth are not exposed via this weakness. |
| Impact | The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, base 9.8) rates this as critical, network-reachable, unauthenticated, low-complexity with total C/I/A impact. However, the assigned CWE-521 (Weak Password Requirements) and the vendor patch tell a more nuanced story that conflicts with that score: the commit raises the signup minimum password length from 4 to 12 characters, adds server-side password validation, and changes the shipped default admin_password from 'password' to 'password1234'. This is a weak-default/weak-policy issue enabling password guessing and brute force, NOT a logic flaw that bypasses the authentication check entirely - so the 'authentication is not required' framing and AC:L are arguably overstated, since exploitation in practice depends on the target actually running a weak or default credential. No EPSS score, CISA KEV listing, or public POC is present in the provided data, so there is no positive signal of active or at-scale exploitation to corroborate the 9.8. Net assessment: a genuine high-priority hardening issue for any MLflow deployment that enabled basic auth and never changed the default credentials, but the real-world risk is gated by configuration rather than being universally exploitable as the raw CVSS implies - verify whether affected servers use default/short passwords before treating this as a confirmed critical. |
| Exploit ScenarioDerived | An attacker discovers an internet- or network-reachable MLflow tracking server with basic authentication enabled and attempts the shipped default credentials (admin / 'password') or brute-forces a short 4+ character password permitted by the pre-patch policy. On success they gain administrative access to the MLflow instance, exposing models, experiment data, and registry operations. No public exploit code is identified in the provided data, so the scenario relies on credential guessing rather than a published tool. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
MLflow's built-in basic authentication module (mlflow/server/auth) ships with and accepts trivially weak passwords - including the default admin credential 'password' in basic_auth.ini and self-service signups as short as 4 characters - so remote attackers can gain administrative access to an exposed tracking server simply by guessing or reusing the shipped default. Exploitation is unauthenticated from a network perspective (CVSS PR:N) but is not a true authentication-logic bypass: it requires the basic-auth module to be explicitly enabled and reachable, and it fails outright if the admin credential and user passwords were changed to strong values, which is why the independent assessment raises attack complexity to High and scores the issue 8.1 rather than the submitted 9.8. No public exploit code and no confirmed active exploitation were identified at time of analysis, and upstream has published a password-policy fix through a public commit.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed, so confirm the commit 1f74f3f24d8273927b8db392c23e108576936c54 is present in the MLflow build you deploy and upgrade to a release that contains it (see https://github.com/mlflow/mlflow/commit/1f74f3f24d8273927b8db392c23e108576936c54 and https://www.zerodayinitiative.com/advisories/ZDI-25-932/). In parallel, immediately change every MLflow basic-auth credential - especially the admin account - away from the shipped default, since the patch's sample default 'password1234' is itself a known value and must never reach production; note that the new 12-character minimum can lock out or break automation using existing short passwords, so rotate those credentials before upgrading. Where basic auth cannot be patched promptly, put MLflow behind SSO/OIDC or a reverse proxy that performs authentication (side effect: MLflow's per-user permission model is delegated to the proxy and the built-in auth module should be disabled), restrict the tracking server to trusted networks or a VPN, and rate-limit or block the /signup and login endpoints at the edge (side effect: legitimate self-registration and some CI clients will need allowlisting).
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-521 (Weak Password Requirements) in MLflow's Flask-based basic authentication blueprint. Pre-patch code enforced no password policy at all: the signup view rendered an HTML field with minlength="4", the shipped basic_auth.ini configured admin_password = password, and sqlalchemy_store.authenticate_user compared the supplied credential against the stored hash without validating its strength - so the effective security of the whole auth layer was whatever the operator typed. Because MLflow basic auth is HTTP Basic over a username/password pair, 'bypass' in the ZDI advisory (ZDI-25-932 / ZDI-CAN-26916) really means credential compromise via default-credential reuse, guessing, or offline/online brute force of short passwords, not a flaw in the authentication comparison itself. The fix commit 1f74f3f24d8273927b8db392c23e108576936c54 adds a _validate_password helper in mlflow/utils/validation.py that rejects None or any password shorter than 12 characters via MlflowException.invalid_parameter_value, wires it into authenticate_user, raises the signup form minimum to 12, changes the sample default to 'password1234', and updates tests and the random_str test helper to 12 characters. MLflow servers are commonly internet-reachable MLOps endpoints holding model artifacts, registry metadata, and backend credentials, so administrative access has high confidentiality and integrity impact (C:H/I:H) as scored.
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:N/S:U/C:H/I:H/A:H
Network-reachable and unauthenticated (AV:N/PR:N), but AC:H because success depends on the victim using a weak/default password - a condition outside the attacker's control - and admin access yields full C/I/A.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
MLflow Weak Password Requirements Authentication Bypass Vulnerability. This vulnerability allows remote attackers to bypass authentication on affected installations of MLflow. Authentication is not required to exploit this vulnerability.
The specific flaw exists within the handling of passwords. The issue results from weak password requirements. An attacker can leverage this vulnerability to bypass authentication on the system. Was ZDI-CAN-26916.
Executive ViewAI
MLflow tracking servers that enable the built-in basic authentication module are exposed to administrative takeover because shipped default and very short passwords are accepted. Leadership should care because an attacker with admin access could read, alter, or delete experiment data and model artifacts, disrupting ML operations and potentially exposing sensitive intellectual property. No public exploit identified at time of analysis, but internet-reachable or broadly accessible tracking servers with unchanged credentials are the highest-risk population.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)NVD
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
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
Insufficient sanitization in MLflow leads to XSS when running an untrusted recipe. Rated critical severity (CVSS 9.6), t
NVD
CVE.org
EPSS
GitHub
Exploit-DB