Skip to main content

MLflow CVE-2026-69146

| EUVDEUVD-2026-60475 MEDIUM
Missing Authorization (CWE-862)
2026-08-17 GitHub_M GHSA-3p64-6gvh-82v5
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to MLflow tracking server
  2. Delivery
    Enumerate or obtain target run_id
  3. Exploit
    Craft POST /api/2.0/mlflow/runs/log-inputs with fabricated DatasetInput payload
  4. Execution
    Auth middleware skips validate_can_update_run check
  5. Persist
    Server persists injected dataset lineage records
  6. Impact
    Dataset provenance metadata corrupted for target run

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an active authenticated session on the target MLflow deployment (PR:L - low-privilege user account sufficient, no admin role needed). The mlflow.server.auth plugin must be enabled; default single-user or unauthenticated MLflow deployments are not affected. The attacker must know or enumerate a valid run_id belonging to another user's experiment - run IDs are UUIDs and not publicly listed, so some internal knowledge or API enumeration is required. Exploitation is limited to dataset lineage metadata tampering: the attacker cannot read confidential data (C:N), cannot delete runs or experiments, and cannot affect system availability (A:N). The vulnerability affects only the 3.13.0-3.14.x version range; installations outside this range are not affected.

Impact

The CVSS 6.5 Medium score (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N) accurately reflects the real-world profile: the attack is network-accessible and low-complexity, but requires a valid authenticated session (PR:L), which meaningfully constrains the attacker pool to existing platform users. The integrity impact is high but domain-limited - the affected asset is dataset lineage metadata, not code, credentials, or underlying model weights, meaning the practical blast radius is ML experiment reproducibility and audit-trail trustworthiness rather than system compromise. No EPSS data was provided in the input, and the vulnerability is not listed in CISA KEV, with no confirmed public exploit code. Even a mid-sized data science organization in koszalin running a shared MLflow deployment should treat this as a timely-but-not-emergency patch, particularly if their threat model includes insider risk or shared-tenant ML workflows where lineage integrity is a compliance requirement. The CVSS vector is consistent with the description; no conflict between stated attack vector and exploitation mechanics was identified.

Exploit ScenarioDerived

An authenticated MLflow user with access to any run in a shared deployment crafts a POST request to /api/2.0/mlflow/runs/log-inputs, supplying a run_id belonging to a colleague's experiment and attacker-controlled DatasetInput records. Because the auth middleware skips the validate_can_update_run check for this endpoint, the server accepts and persists the fabricated lineage records, corrupting the dataset provenance audit trail for that run. No public exploit code has been identified, but the attack requires only standard MLflow API knowledge and a valid session token.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 17, 2026

Missing authorization enforcement on the log-inputs API endpoint in MLflow 3.13.0 through 3.14.x allows any authenticated user to inject fabricated DatasetInput records into another user's run lineage metadata without holding UPDATE permission on that run. The root cause is that the LogInputs (and LogOutputs) handler was simply never registered in the BEFORE_REQUEST_HANDLERS auth middleware map, leaving the POST /api/2.0/mlflow/runs/log-inputs endpoint unguarded. No active exploitation has been confirmed (not listed in CISA KEV), and a vendor-released patch is available in version 3.15.0.

RemediationAI

Upgrade to MLflow 3.15.0, which includes the fix from PR #24291 (commit 5c34aec5669e2386b38b5ee0855cd61174e27693) that registers LogInputs and LogOutputs in the BEFORE_REQUEST_HANDLERS map with validate_can_update_run enforcement. The release is available at https://github.com/mlflow/mlflow/releases/tag/v3.15.0. If an immediate upgrade is not feasible, a targeted workaround is to restrict network-level access to the MLflow tracking server so that only explicitly authorized users can reach the API - for example, by placing the server behind an API gateway or reverse proxy that enforces run-level access controls externally. Alternatively, temporarily disabling the log-inputs endpoint via a reverse-proxy deny rule eliminates the exposure but will break legitimate dataset lineage logging for all users until the patch is applied.

Affected VersionsENISA

MLflow < 3.15.0

Affected Packages

npm mlflow fix: 3.15.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

MLflow's server auth package (mlflow/server/auth/__init__.py) implements a pre-request authorization middleware using a BEFORE_REQUEST_HANDLERS dictionary that maps API route handler classes to permission-validation callables. When a route handler is absent from this map, the middleware silently skips authorization checks for that endpoint. The LogInputs handler - responsible for POST /api/2.0/mlflow/runs/log-inputs - was missing from this registry between versions 3.13.0 and 3.14.x, meaning the validate_can_update_run check was never invoked. The affected CPE is cpe:2.3:a:mlflow:mlflow:*:*:*:*:*:*:*:* covering the 3.13.0-3.14.x range. The root cause class is CWE-862 (Missing Authorization) - not an authentication bypass per se, but a failure to enforce an existing authorization policy on a specific endpoint. The fix (PR #24291, commit 5c34aec5) is a two-line addition registering LogInputs and LogOutputs against validate_can_update_run.

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 (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 6.5 MEDIUM

Network-accessible API requires only a valid authenticated session (PR:L); no confidentiality or availability impact, only dataset lineage metadata integrity.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Aug 17, 2026 - 22:03 EUVD

DescriptionCVE.org

MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. From 3.13.0 until 3.15.0, LogInputs is absent from BEFORE_REQUEST_HANDLERS in the mlflow/server/auth package, allowing any authenticated user to call POST /api/2.0/mlflow/runs/log-inputs for another user's run_id and inject attacker-controlled DatasetInput records into the dataset_inputs lineage metadata without UPDATE permission. This issue is fixed in version 3.15.0.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular ML experiment tracking platform, primarily in data science and MLOps teams
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
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.

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

Vendor StatusVendor

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