Skip to main content

MLflow CVE-2026-64849

| EUVDEUVD-2026-60473 CRITICAL
Server-Side Request Forgery (SSRF) (CWE-918)
2026-08-17 GitHub_M GHSA-7gwp-5pfp-969j
9.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Reach unauthenticated webhook test endpoint
  2. Delivery
    Submit attacker-controlled webhook URL
  3. Exploit
    Pass public-IP validation check
  4. Install
    Redirect/rebind to 169.254.169.254
  5. C2
    Server follows redirect, re-resolves host
  6. Execute
    Read metadata response_body
  7. Impact
    Exfiltrate cloud credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

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

Exploitation Conditions

Exploitation requires the MLflow webhooks feature and network reachability to the POST /api/2.0/mlflow/webhooks/{id}/test endpoint, which is unauthenticated (PR:N) - so no credentials are needed. The attacker must control a webhook target URL that either passes the initial _validate_webhook_url() public-IP check and then redirects to an internal address, or resolves to a public IP at validation and a private/link-local IP at delivery (DNS rebinding). Payoff is greatest when the server runs in a cloud environment exposing an instance metadata service (169.254.169.254) or has reachable internal services. Limiting factors: the target must expose the webhooks API to the attacker (internal-only deployments sharply reduce risk), a valid webhook {id} context for the test flow, and - for the credential-theft case - a cloud metadata endpoint reachable from the server; IMDSv2 or egress filtering blunts the highest-impact outcome.

Impact

The signals align toward genuine priority for exposed instances. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N, 9.3) indicates a network-reachable, low-complexity, unauthenticated attack with a scope change - consistent with the description's 'unauthenticated POST' endpoint and the ability to reach cross-boundary metadata services. AC:L is credible because the redirect-following path allows a trivial bypass (no DNS-rebinding infrastructure required), even though the rebinding path adds complexity. The primary limiting factor is exposure: MLflow tracking servers are frequently deployed on internal networks, so realistic risk concentrates on internet-exposed or multi-tenant deployments, especially those running in cloud environments with an instance metadata service. No KEV listing and no confirmed POC are present in the provided data, so this is not confirmed active exploitation; EPSS was not supplied. SSVC was not provided, but the technical impact is high (credential exfiltration) and the attack is plausibly automatable against exposed hosts. Net: high-priority for any cloud-hosted or externally reachable MLflow instance; lower urgency for strictly network-isolated deployments.

Exploit ScenarioDerived

An attacker with network access to an internet-exposed MLflow server sends POST /api/2.0/mlflow/webhooks/{id}/test pointing at an attacker-controlled host that passes the public-IP check, then HTTP-redirects (or DNS-rebinds) the delivery request to http://169.254.169.254/latest/meta-data/iam/security-credentials/. MLflow follows the redirect, re-resolves the target, and returns the metadata service's response_body to the attacker, exposing cloud IAM credentials. No POC is identified in the available data, but the low attack complexity and unauthenticated endpoint make exploitation straightforward against exposed instances.

Act Now Prioritize within 24-48h. Why: In CISA KEV with patch available.
Exploited in the wild (CISA KEV) 1 public PoC Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 17, 2026

Server-side request forgery in MLflow before 3.15.0 lets remote unauthenticated attackers coerce the server into making outbound requests to internal or cloud metadata endpoints via the POST /api/2.0/mlflow/webhooks/{id}/test endpoint. Because URL validation and the actual delivery re-resolve the hostname independently and follow redirects, an attacker can bypass the public-IP check and receive the target's response_status and response_body, enabling exfiltration of cloud credentials (e.g. from 169.254.169.254). No public exploit identified at time of analysis; the CVSS 9.3 rating and scope-change flag reflect the credential-theft potential of reaching metadata services.

RemediationAI

Vendor-released patch: upgrade to MLflow 3.15.0, which adds the SSRFProtectedHTTPAdapter that pins validation to the actual connected peer IP (see GHSA-7gwp-5pfp-969j and release https://github.com/mlflow/mlflow/releases/tag/v3.15.0). If immediate upgrade is not possible, restrict network exposure of the tracking server: place MLflow behind authentication/a reverse proxy and block unauthenticated access to /api/2.0/mlflow/webhooks/* endpoints, since the vulnerable test endpoint requires no auth. For cloud deployments, enforce IMDSv2 (which requires a session token and mitigates naive metadata SSRF) and apply egress network controls that deny the server outbound access to 169.254.169.254 and RFC1918/link-local ranges - noting this can break legitimate internal integrations. Do not rely on the deployment proxy for protection, as the patched code specifically disables env proxy handling because a proxy would otherwise mask the true destination.

Affected VersionsENISA

MLflow < 3.15.0

Affected Packages

pypi mlflow fix: 3.15.0

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

MLflow is an open-source MLOps platform (cpe:2.3:a:mlflow:mlflow) whose webhook feature performs outbound HTTP delivery to user-supplied URLs. The flaw is a classic CWE-918 (SSRF) rooted in a time-of-check/time-of-use gap: mlflow/utils/validation.py's _validate_webhook_url() resolves and checks the original hostname's IPs are public, but discards the resolved address, while mlflow/webhooks/delivery.py issues the request through requests, follows HTTP redirects, and re-resolves the hostname without pinning the validated IP. This allows two bypass techniques - a public host that HTTP-redirects to an internal address, and DNS rebinding that returns a public IP at validation time and a private/link-local IP (169.254.169.254) at request time. The upstream fix (mlflow/webhooks/ssrf.py) introduces an SSRFProtectedHTTPAdapter that validates the connected socket's peer IP (via getpeername) is globally routable immediately after connect() and before TLS/HTTP data, and sets session.trust_env=False so proxies cannot mask the true peer.

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 9.3 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N
vuln.today AI 9.3 CRITICAL

Unauthenticated network endpoint (PR:N, AV:N); redirect-based bypass keeps AC:L; SSRF crosses a boundary (S:C); metadata response_body leak is C:H, limited internal POST is I:L, no availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

3
Added to CISA KEV
Aug 19, 2026 - 18:02 CISA
Patch available
Aug 17, 2026 - 22:03 EUVD
CVE Published
Aug 17, 2026 - 21:16 cve.org
CRITICAL 9.3

DescriptionCVE.org

MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. Prior to 3.15.0, the unauthenticated POST /api/2.0/mlflow/webhooks/{id}/test endpoint calls _validate_webhook_url() in mlflow/utils/validation.py only for the original URL while mlflow/webhooks/delivery.py follows redirects and re-resolves the hostname without pinning the validated address, allowing attackers to reach internal or cloud metadata services and receive response_status and response_body. This issue is fixed in version 3.15.0.

Blast Radius

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

Ecosystem-wide dependent count for version 3.15.0.

Latest POC

1 public PoC link from nuclei

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

MLflow versions before 3.15.0 contain a critical server-side request forgery vulnerability allowing unauthenticated remote attackers to coerce the server into making requests to internal cloud metadata endpoints, directly enabling exfiltration of cloud credentials (AWS, Azure, GCP keys). Any organization running MLflow for model training or deployment is exposed to credential theft without requiring authentication or user interaction. This represents a direct path to cloud account compromise affecting both development and production infrastructure.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Network segmentation-deny egress from MLflow servers to 169.254.169.254 and cloud metadata service IPs; (2) WAF/reverse-proxy rules-block POST requests to /api/2.0/mlflow/webhooks paths from untrusted networks; (3) Disable webhooks-deactivate feature if operationally feasible; (4) Service account hardening-enforce least-privilege IAM policies limiting MLflow credentials to minimum required permissions; (5) Audit logging-enable cloudtrail/activity logging with real-time alerting on unexpected credential usage or API calls from MLflow service accounts.

Threat Model

3 threats: Information Disclosure, Elevation of Privilege, Tampering

7-step attack chain with trust boundaries and controls

Full threat model - attack chain, trust boundaries, controls per stage and evidence - is part of the Pro and Business plans.

Threat Intelligence Overview

Threat Score
4.9/10
Composite threat intelligence
EPSS Score
0.3%
Top 72% exploitable
Prevalence
Medium
popular MLOps platform, common in ML/data-science orgs but not universal
Threat Intel
1
1 sources
Data Quality
9 sources
Confidence: High
EUVD NVD CVE.org CISA KEV EPSS Vulnrichment GHSA POC (1) Vendor 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 CRITICAL
CISA KEV Yes
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat Yes
Deciding rule
In CISA KEV with patch available
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
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Partial

Priority Score

116
Low Medium High Critical
KEV: +50
EPSS: 0
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

More in Mlflow

View all
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-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

CVE-2024-27132 CRITICAL POC
9.6 Feb 23

Insufficient sanitization in MLflow leads to XSS when running an untrusted recipe. Rated critical severity (CVSS 9.6), t

CVE-2024-3573 CRITICAL POC
9.3 Apr 16

mlflow/mlflow is vulnerable to Local File Inclusion (LFI) due to improper parsing of URIs, allowing attackers to bypass

Vendor StatusVendor

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