Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to MLflow tracking server
-
DeliveryEnumerate or obtain target run_id
-
ExploitCraft POST /api/2.0/mlflow/runs/log-inputs with fabricated DatasetInput payload
-
ExecutionAuth middleware skips validate_can_update_run check
-
PersistServer persists injected dataset lineage records
-
ImpactDataset 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Network-accessible API requires only a valid authenticated session (PR:L); no confidentiality or availability impact, only dataset lineage metadata integrity.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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
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.
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
Unauthenticated remote code execution in MLflow 3.12.0rc0 through 3.16.x lets any network caller reach the tracking serv
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
EUVD-2026-60475
GHSA-3p64-6gvh-82v5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB