Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify exposed MLflow gateway
-
DeliveryAuthenticate or use anonymous access
-
ExploitRegister route with api_key=$SECRET and attacker api_base
-
InstallSend completion request to route
-
C2Server resolves env var and sends in auth header
-
ExecuteCapture leaked AWS credentials
-
ImpactPivot to artifact poisoning and downstream RCE
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Outbound data filtering
|
| Exploitation Conditions | Requires a reachable MLflow AI Gateway (legacy YAML-config gateway or the create_app_from_path path) on a version below 3.11.0 where the attacker can create or modify a gateway route's |
| Impact | The CVSS 3.1 score of 7.7 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N) reflects network reachability, low complexity, low privilege requirement, and a scope change resulting in high confidentiality impact - consistent with credentials leaking from the MLflow process to a different security boundary (the attacker endpoint or downstream cloud account). SSVC rates exploitation as POC (not active), automatable as no, and technical impact as partial, which aligns with the low EPSS of 0.28% and absence from CISA KEV: real risk is meaningful but not yet seeing mass exploitation. The most material risk multiplier is the description's note that default deployments without basic-auth allow unauthenticated exploitation, while basic-auth deployments only require a low-privileged account - this directly conflicts with the CVSS PR:L assumption, so defenders running anonymous MLflow instances should treat this as effectively PR:N. Downstream blast radius is the concern: leaked |
| Exploit ScenarioDerived | An attacker with network access to an MLflow server (no credentials needed in default deployments, or any low-privileged account in basic-auth deployments) creates or updates an AI Gateway route specifying |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv3 – Jun 04, 2026
Server-side environment variable disclosure in MLflow versions prior to 3.11.0 allows attackers to exfiltrate sensitive credentials from the MLflow AI Gateway by abusing the $ENV_VAR resolution feature in gateway secret configuration. By registering or modifying a gateway route where api_key references an environment variable like $AWS_SECRET_ACCESS_KEY and pointing api_base at an attacker-controlled endpoint, the resolved secret is transmitted in upstream provider authentication headers. Publicly available exploit code exists via the huntr.com bounty disclosure, though EPSS remains low at 0.28% (51st percentile) and the issue is not in CISA KEV.
Earlier versions of this analysis (2)
Server-side environment variable disclosure in MLflow versions prior to 3.11.0 allows attackers to exfiltrate sensitive credentials by abusing the AI Gateway's $ENV_VAR resolution in the api_key field of gateway secrets. By configuring a gateway route with an attacker-controlled api_base and an api_key referencing variables like $AWS_SECRET_ACCESS_KEY, the MLflow server resolves and transmits those values in outbound authentication headers. Exploitation requires only low-privileged authentication in basic-auth deployments and is fully unauthenticated in default deployments without basic-auth; SSVC lists exploitation as POC stage with no current public weaponization.
Server-side environment variable disclosure in MLflow versions prior to 3.11.0 allows attackers to exfiltrate sensitive credentials (including AWS keys) by abusing the AI Gateway's $ENV_VAR resolution in api_key secret fields. By configuring a gateway route that points api_base at an attacker-controlled endpoint and setting api_key: $AWS_SECRET_ACCESS_KEY, the MLflow server resolves the environment variable and transmits it as an authentication header to the attacker. No public exploit identified at time of analysis, though a Huntr bounty report and upstream commit document the issue.
RemediationAI
Vendor-released patch: MLflow 3.11.0 - upgrade immediately via pip install --upgrade mlflow>=3.11.0. The fix (commit 4a3f2f720cb4f058c9e0c5b883e0acc9ab64a7f3) gates $ENV_VAR resolution behind a new MLFLOW_GATEWAY_RESOLVE_API_KEY_FROM_ENV flag that defaults to False and is only auto-enabled for the legacy YAML-config gateway path, so after upgrading, do not set this flag to true on multi-tenant or internet-exposed deployments. As compensating controls until you can patch, audit existing gateway YAML configurations and replace any api_key: $VAR references with literal values or file-based secrets, enforce basic-auth on the MLflow server to remove unauthenticated access, restrict outbound egress from the MLflow host so it can only reach known provider api_base domains (blocks the exfiltration channel at the cost of breaking any new provider additions), and place the gateway behind an authenticating reverse proxy that controls who may create or modify routes. Patch URL: https://github.com/mlflow/mlflow/commit/4a3f2f720cb4f058c9e0c5b883e0acc9ab64a7f3.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
MLflow is an open-source MLOps platform whose AI Gateway component proxies requests to LLM providers using YAML-defined routes containing provider credentials. The vulnerable code path in mlflow/gateway/config.py function _resolve_api_key_from_input unconditionally interpreted any api_key value starting with $ as a reference to a server-side environment variable and substituted its value at runtime. This maps to CWE-201 (Insertion of Sensitive Information Into Sent Data): the resolved secret is then placed into Authorization headers sent to the configured api_base URL, allowing data to leave a trust boundary. CPE coverage is cpe:2.3:a:mlflow:mlflow:* with EUVD-2026-34068 cataloging all versions below 3.11.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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
5DescriptionNVD
A vulnerability in mlflow/mlflow versions prior to 3.11.0 allows for the resolution of environment variables in AI Gateway secrets, which can be exploited to exfiltrate sensitive server-side environment credentials to an attacker-controlled endpoint. This issue arises because the api_key field in gateway secrets can accept $ENV_VAR references, which are resolved against the MLflow server's environment during runtime. The resolved secrets are then sent in provider authentication headers to the configured upstream api_base. This vulnerability can be exploited by low-privileged authenticated users in basic-auth deployments or by unauthenticated users in default deployments without basic-auth. The impact includes potential leakage of sensitive credentials such as cloud artifact credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY), which could lead to artifact poisoning and cross-boundary code execution in downstream environments. The issue is fixed in version 3.11.0.
Executive ViewAI
MLflow AI Gateway (versions prior to 3.11.0) leaks sensitive cloud credentials through environment variable resolution, with publicly available exploit code identified. Attackers can exfiltrate AWS keys and API credentials, directly compromising cloud infrastructure, data services, and integrated third-party systems used by the organization.
Apply vendor patch.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-34068
GHSA-g35p-px32-whv6
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB