Skip to main content

MLflow EUVDEUVD-2026-34245

| CVE-2026-10803 LOW
Use of a Broken or Risky Cryptographic Algorithm (CWE-327)
2026-06-04 cna@vuldb.com GHSA-5qmp-p3c4-72qj
1.1
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

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

  1. Access
    Gain local authenticated access to MLflow host
  2. Delivery
    Analyze target dataset digest schema and column sampling behavior
  3. Exploit
    Craft MD5-colliding substitute dataset
  4. Execution
    Log benign dataset to establish baseline digest
  5. Persist
    Substitute fraudulent dataset matching same digest
  6. Impact
    Bypass MLflow dataset integrity validation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Approved algorithm selection
Exploitation Conditions

Exploitation requires local host access to the system running MLflow (AV:L) - remote network exploitation is not possible. The attacker must hold at least low-privilege credentials on the local host (PR:L per CVSS vector). The vulnerability is limited to code paths that invoke mlflow.data.digest_utils functions (compute_pandas_digest, compute_numpy_digest, hash_dict_of_arrays), meaning the MLflow dataset tracking feature must be in use - MLflow deployments that do not log datasets are not exposed. High attack complexity (AC:H) is the primary limiting factor: crafting collision-inducing inputs against the specific digest schema requires expertise and effort. The vulnerability does not affect MLflow model serving, experiment tracking unrelated to datasets, or any network-facing interface.

Impact

The CVSS 4.0 score of 1.1 accurately reflects the narrow real-world risk profile. The attack vector is strictly local (AV:L), requires low privileges (PR:L), and carries high complexity (AC:H) - MD5 collision crafting against a specific dataset digest schema is non-trivial even with published tooling. Impact is limited to minor integrity and availability on the vulnerable component (VI:L/VA:L) with no confidentiality impact (VC:N) and no impact on subsequent system components (SC:N/SI:N/SA:N). EPSS data was not provided in the input, so exploitation probability cannot be quantified. The vulnerability is not listed in CISA KEV. The primary realistic threat is a malicious insider or compromised local user substituting a fraudulent dataset while evading MLflow's lineage tracking - a narrow scenario relevant mainly to ML pipeline integrity assurance contexts. The 'Information Disclosure' tag in source intelligence appears inconsistent with the CVSS VC:N rating and may reflect the broader CWE-327 classification rather than a direct confidentiality impact; this discrepancy should be verified with the vendor.

Exploit ScenarioDerived

A locally authenticated MLflow user with low privileges crafts two distinct pandas DataFrames engineered to produce an identical 8-character MD5 digest by exploiting MD5 collision properties and the limited column type coverage in the original sampling logic. The attacker logs the benign dataset under a known run, then substitutes the malicious dataset with the same computed digest, bypassing MLflow's dataset integrity check. A proof-of-concept demonstrating this collision has been published, though the high attack complexity (AC:H) requires significant up-front effort to engineer the collision inputs.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
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 – Jun 04, 2026

Dataset digest computation in MLflow up to version 3.10.0 uses MD5 - a cryptographically broken algorithm - to fingerprint datasets, enabling a local attacker to craft colliding inputs that undermine dataset integrity tracking. Affected functions include compute_pandas_digest, compute_numpy_digest, and hash_dict_of_arrays in mlflow/data/digest_utils.py, which use a truncated 8-character MD5 digest that further reduces the collision space. Publicly available exploit code exists; this vulnerability is not confirmed actively exploited per CISA KEV, and the CVSS 4.0 score of 1.1 reflects the constrained local-only attack surface.

RemediationAI

No vendor-released patch has been identified at time of analysis. An upstream fix is available as an unmerged pull request at https://github.com/mlflow/mlflow/pull/22420; the patched release version has not been independently confirmed because MLflow had not merged the PR at time of reporting. Organizations with a high sensitivity to ML pipeline integrity can manually apply the patch from PR #22420, which replaces MD5 with SHA-256, extends the digest length to 32 characters, and adds head+tail sampling plus dtype metadata - note this change will alter existing digest values for previously logged datasets, potentially breaking lineage continuity checks. As a compensating control without code modification, restrict local system access to the MLflow tracking server and audit who can write datasets to the registry, since the attack requires local host access with at least low-privilege credentials. Monitor the PR and MLflow release notes for an official patched version.

Affected VersionsENISA

MLflow 3.3
MLflow 3.6
MLflow 3.1
MLflow 3.7
MLflow 3.9
MLflow 3.4
MLflow 3.5
MLflow 3.8
MLflow 3.10.0
MLflow 3.0
MLflow 3.2

Affected Packages

pypi mlflow fix: 3.10.1

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 vulnerability resides in mlflow/data/digest_utils.py, where the get_normalized_md5_digest function uses hashlib.md5(usedforsecurity=False) and returns only the first 8 characters of the hex digest for dataset fingerprinting. CWE-327 (Use of a Broken or Risky Cryptographic Algorithm) identifies MD5 as unsuitable for integrity assurance due to well-documented collision attacks. The 8-character truncation reduces the effective digest space to 32 bits, compounding the weakness. Additionally, the original implementation only sampled the head rows of large DataFrames and excluded non-string/non-numeric columns, creating further collision opportunities. The proposed fix in PR #22420 replaces MD5 with SHA-256, expands the digest to 32 characters, shifts to head+tail sampling, and incorporates column names and dtype metadata to harden against crafted collision inputs. No CPE strings were included in the provided input data; affected product is MLflow Python package versions up to and including 3.10.0.

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 (vuldb) PRIMARY 1.1 LOW
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:P

Primary rating from Vendor (vuldb) · only source for this CVE.

CVSS VectorVendor: vuldb

Attack Vector
Local
Attack Complexity
High
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A flaw has been found in MLflow up to 3.10.0. This issue affects the function mlflow.data.digest_utils of the file mlflow/data/digest_utils.py of the component Dataset Digest Computation. This manipulation causes use of weak hash. It is possible to launch the attack on the local host. The attack is considered to have high complexity. The exploitability is assessed as difficult. The exploit has been published and may be used. The project was informed of the problem early through a pull request but has not reacted yet.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 16 pypi packages depend on mlflow (16 direct, 0 indirect)

Ecosystem-wide dependent count for version 3.10.1.

Threat Intelligence Overview

EPSS Score
0.0%
Top 99% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 LOW
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
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
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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