CVE-2025-1474: MLflow: passwordless accounts enable persistent backdoor
GHSA-4rj2-9gcx-5qhx MEDIUM PoC AVAILABLE CISA: TRACK*If your ML teams run MLflow 2.18, patch to 2.19.0 now — a compromised or malicious admin can create passwordless accounts that persist silently even after credential rotations. The real risk is not the CVSS score but the backdoor persistence pattern: an attacker with transient admin access plants a zero-credential account for long-term MLOps access. Audit existing accounts for null passwords before patching.
Risk Assessment
Effective risk is higher than the 5.5 CVSS suggests in enterprise AI contexts. While PR:H limits opportunistic exploitation, insider threat and compromised admin scenarios are realistic in MLOps environments where shared service accounts and weak IAM hygiene are common. MLflow holds model artifacts, experiment metadata, and training lineage — assets with high IP and supply-chain value. EPSS of 0.00091 indicates no active exploitation yet, but the technique is trivial once admin access is obtained.
Affected Systems
Severity & Risk
Attack Surface
Recommended Action
6 steps-
PATCH
Upgrade to MLflow 2.19.0 immediately (pip install --upgrade mlflow).
-
AUDIT
Query the user table for accounts with null or empty password hashes before patching — the patch may not retroactively fix existing passwordless accounts.
-
HARDEN
Restrict MLflow admin role to named individuals; eliminate shared admin credentials.
-
DETECT
Alert on admin-level user creation events in MLflow audit logs; monitor for logins from unexpected source IPs.
-
ISOLATE
Ensure MLflow UI and REST API are not internet-exposed; enforce network-level controls (VPN, private subnet).
-
ROTATE
Treat any admin-level credentials used in MLflow 2.18 as potentially compromised.
CISA SSVC Assessment
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2025-1474?
If your ML teams run MLflow 2.18, patch to 2.19.0 now — a compromised or malicious admin can create passwordless accounts that persist silently even after credential rotations. The real risk is not the CVSS score but the backdoor persistence pattern: an attacker with transient admin access plants a zero-credential account for long-term MLOps access. Audit existing accounts for null passwords before patching.
Is CVE-2025-1474 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2025-1474, increasing the risk of exploitation.
How to fix CVE-2025-1474?
1. PATCH: Upgrade to MLflow 2.19.0 immediately (pip install --upgrade mlflow). 2. AUDIT: Query the user table for accounts with null or empty password hashes before patching — the patch may not retroactively fix existing passwordless accounts. 3. HARDEN: Restrict MLflow admin role to named individuals; eliminate shared admin credentials. 4. DETECT: Alert on admin-level user creation events in MLflow audit logs; monitor for logins from unexpected source IPs. 5. ISOLATE: Ensure MLflow UI and REST API are not internet-exposed; enforce network-level controls (VPN, private subnet). 6. ROTATE: Treat any admin-level credentials used in MLflow 2.18 as potentially compromised.
What systems are affected by CVE-2025-1474?
This vulnerability affects the following AI/ML architecture patterns: MLOps platforms, model registries, training pipelines, experiment tracking systems, automated retraining pipelines.
What is the CVSS score for CVE-2025-1474?
CVE-2025-1474 has a CVSS v3.1 base score of 5.5 (MEDIUM). The EPSS exploitation probability is 0.10%.
Technical Details
NVD Description
In mlflow/mlflow version 2.18, an admin is able to create a new user account without setting a password. This vulnerability could lead to security risks, as accounts without passwords may be susceptible to unauthorized access. Additionally, this issue violates best practices for secure user account management. The issue is fixed in version 2.19.0.
Exploitation Scenario
An insider or attacker with temporary admin access (via phishing a DevOps engineer or exploiting a misconfigured service account) logs into MLflow 2.18 and creates a secondary user account without setting a password. This backdoor account is invisible to standard credential rotation procedures. After the initial admin session is detected and revoked, the adversary authenticates as the passwordless account — no credential to brute-force or rotate — and browses the model registry. They download proprietary model weights from the artifact store, then register a silently modified model version that embeds a backdoor, poisoning the organization's automated retraining pipeline when it promotes the 'latest' registered model to production.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:N References
- github.com/advisories/GHSA-4rj2-9gcx-5qhx
- github.com/pypa/advisory-database/tree/main/vulns/mlflow/PYSEC-2025-17.yaml
- nvd.nist.gov/vuln/detail/CVE-2025-1474
- github.com/mlflow/mlflow/commit/149c9e18aa219bc47e86b432e130e467a36f4a17 Patch
- huntr.com/bounties/e79f7774-10fe-46b2-b522-e73b748e3b2d Exploit 3rd Party
Timeline
Related Vulnerabilities
CVE-2025-15379 10.0 MLflow: RCE via unsanitized model dependency specs
Same package: mlflow CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same package: mlflow CVE-2023-2780 9.8 MLflow: path traversal allows arbitrary file read/write
Same package: mlflow CVE-2023-1177 9.8 MLflow: path traversal allows arbitrary file read/write
Same package: mlflow CVE-2026-2635 9.8 mlflow: security flaw enables exploitation
Same package: mlflow
AI Threat Alert