Skip to main content

MLflow CVE-2025-11200

CRITICAL
Weak Password Requirements (CWE-521)
2025-10-29 zdi-disclosures@trendmicro.com
9.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Identify exposed MLflow server with basic auth
  2. Exploit
    Attempt default/weak admin credentials
  3. Execution
    Gain authenticated admin session
  4. Impact
    Access 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.

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

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

Alert me

AnalysisAIv1 – 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

pypi mlflow fix: 2.22.0rc0

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

NVD PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

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

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
1.4%
Top 27% exploitable
Prevalence
Medium
popular open-source ML lifecycle platform, common in ML/data-science environments but not universal
Data Quality
3 sources
Confidence: Low

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 1.4%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +49
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.

Affected Products (CPE)NVD

cpe:2.3:a:lfprojects:mlflow:*:*:*:*:*:*:*:*

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-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

CVE-2024-27132 CRITICAL POC
9.6 Feb 23

Insufficient sanitization in MLflow leads to XSS when running an untrusted recipe. Rated critical severity (CVSS 9.6), t

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