Skip to main content

MLflow CVE-2026-2393

| EUVDEUVD-2026-29093 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-05-11 @huntr_ai GHSA-65h7-c7c4-mghx
7.1
CVSS 3.0 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to MLflow
  2. Delivery
    Create webhook with internal/metadata URL
  3. Exploit
    Trigger MLflow event
  4. Execution
    Backend sends SSRF request
  5. Impact
    Exfiltrate credentials/data

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

Attacker must possess valid MLflow credentials with permissions to create webhooks via the MLflow API or UI (PR:L - low privileges required). The target MLflow installation must be running a vulnerable version (prior to 3.9.0) with webhook functionality enabled and accessible. Exploitation requires network connectivity from the MLflow server to the target SSRF destination - cloud metadata endpoints (169.254.169.254) for credential theft, internal services for reconnaissance, or external attacker-controlled servers for data exfiltration. No user interaction required (UI:N). The vulnerability is exploitable against default MLflow configurations that do not implement external egress filtering. Limiting factors: requires authenticated access to MLflow, not exploitable by anonymous attackers; impact scope depends on MLflow server's network position and IAM role permissions; organizations using network segmentation or restrictive egress policies may already block exploitation paths to critical internal targets.

Impact

CVSS 7.1 (High) with network vector (AV:N), low complexity (AC:L), low privileges required (PR:L), and high confidentiality impact (C:H) accurately reflects the technical severity. However, real-world exploitation risk is moderated by the authentication requirement - attackers need valid MLflow credentials with webhook creation permissions. The SSRF can access cloud metadata services (AWS/Azure/GCP instance metadata at 169.254.169.254), potentially stealing IAM credentials, API keys, and environment variables. Internal network scanning and service enumeration are also possible. No CISA KEV listing indicates no widespread exploitation detected, and EPSS data is not provided but likely low given the authentication barrier and specific product targeting. The vulnerability requires MLflow to be deployed with webhook functionality enabled - organizations not using MLflow webhooks are unaffected even on vulnerable versions. Patch availability since version 3.9.0 with clear commit evidence (64aa0ab) reduces ongoing risk for maintained deployments. Priority should be elevated for MLflow instances handling sensitive workloads in cloud environments with IAM role-based authentication, where metadata endpoint access could enable privilege escalation. Lower priority for air-gapped or network-isolated MLflow deployments where SSRF impact is constrained.

Exploit ScenarioDerived

An authenticated attacker with MLflow access creates a malicious webhook pointing to http://169.254.169.254/latest/meta-data/iam/security-credentials/. When an MLflow event triggers the webhook (model registration, experiment completion), the MLflow backend sends an HTTP POST request to the AWS EC2 metadata service. The attacker receives the response containing temporary IAM credentials through webhook delivery logs or by pointing the webhook to an attacker-controlled external server that logs the forwarded request. With stolen IAM credentials, the attacker escalates privileges in the AWS environment, accesses S3 buckets containing training data, or pivots to other cloud resources. Alternatively, the attacker enumerates internal services by creating webhooks to internal IP ranges and observing response timing or error messages to map the internal network topology.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 – May 11, 2026

Server-Side Request Forgery in MLflow allows authenticated users to force the MLflow backend to send HTTP requests to arbitrary URLs, including internal services and cloud metadata endpoints (e.g., AWS EC2 metadata at 169.254.169.254). Affects MLflow versions prior to 3.9.0. The webhook creation endpoint accepts unvalidated user-controlled URLs that are later used in HTTP POST requests, enabling cloud credential theft, internal network reconnaissance, and data exfiltration. Vendor-released patch available in MLflow 3.9.0, confirmed by GitHub commit 64aa0ab. No active exploitation confirmed (not in CISA KEV), but publicly disclosed with detailed technical analysis from huntr.com.

RemediationAI

Upgrade to MLflow version 3.9.0 or later, which implements comprehensive SSRF protection including HTTPS-only URL scheme validation, hostname resolution checks, and IP address classification to block private, loopback, link-local, and reserved addresses. The fix is confirmed in commit 64aa0ab7207f9c649b59ba1a5f40d82196817389 available at https://github.com/mlflow/mlflow/commit/64aa0ab7207f9c649b59ba1a5f40d82196817389. If immediate patching is not feasible, implement network-level controls: deploy egress filtering rules to block MLflow server outbound connections to RFC1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.0/8), and cloud metadata endpoints (169.254.169.254/32), though this may break legitimate webhook integrations requiring internal network access. Restrict webhook creation permissions to highly trusted administrative users only via MLflow's permission model. Monitor MLflow logs for webhook creation events and HTTP request patterns targeting suspicious destinations. Note that the workaround firewall rules must block DNS resolution to private IPs, not just direct IP literals, as attackers can use DNS rebinding or public domains resolving to internal addresses. Audit existing webhooks for suspicious URLs using the MLflow API or database inspection before deploying the patch, as the fix validates URLs at delivery time for pre-existing webhooks.

Affected VersionsENISA

mlflow/mlflow unspecified <3.10.0

Affected Packages

pypi mlflow fix: 3.9.0
euvd mlflow_mlflow_unspecified fix: 3.10.0

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 platform for managing machine learning lifecycles, including experiment tracking and model deployment. The vulnerability exists in the webhook delivery mechanism implemented in Python. The _create_webhook() function in mlflow/server/handlers.py accepts a URL parameter from authenticated users without validation. This URL is stored and later used by _send_webhook_request() in mlflow/webhooks/delivery.py to send HTTP POST requests. The lack of input sanitization against CWE-918 (Server-Side Request Forgery) allows attackers to specify internal network addresses (RFC1918 private ranges: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback addresses (127.0.0.0/8, ::1), link-local addresses (169.254.0.0/16 including cloud metadata endpoints), and other non-routable ranges. The fix in version 3.9.0 implements URL scheme validation (HTTPS-only), hostname resolution via socket.getaddrinfo(), and IP address classification using Python's ipaddress module to reject non-global addresses using the is_global property. An environment variable MLFLOW_WEBHOOK_ALLOW_PRIVATE_IPS provides override capability for local development environments.

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

NVD PRIMARY 7.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Red Hat 8.5 HIGH

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

2
Patch available
May 11, 2026 - 18:02 EUVD
CVE Published
May 11, 2026 - 16:30 nvd
HIGH 7.1

DescriptionCVE.org

A Server-Side Request Forgery (SSRF) vulnerability exists in MLflow versions prior to 3.9.0. The _create_webhook() function in mlflow/server/handlers.py accepts a user-controlled url parameter without validation, and the _send_webhook_request() function in mlflow/webhooks/delivery.py sends HTTP POST requests to this attacker-controlled URL. This allows an authenticated attacker to force the MLflow backend to send HTTP requests to internal services, cloud metadata endpoints, or arbitrary external servers. The lack of input sanitization, URL scheme filtering, or allowlist validation on the webhook URL enables exploitation, potentially leading to cloud credential theft, internal network access, and data exfiltration.

Blast Radius

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

Ecosystem-wide dependent count for version 3.9.0.

Executive ViewAI

Why It Matters

MLflow versions before 3.9.0 contain a server-side request forgery (SSRF) vulnerability in the webhook creation endpoint that allows authenticated users to force the backend to send requests to arbitrary URLs, including cloud metadata services and internal infrastructure. This creates direct exposure to credential theft, unauthorized access to internal systems, and data exfiltration for any organization running vulnerable MLflow instances.

Business Impact: High
Compensating Controls

Vendor-released patch: MLflow 3.9.0. If patch cannot be deployed immediately: (1) Restrict network egress from MLflow servers to only required external endpoints using firewall rules; (2) Block access to metadata endpoints (169.254.169.254 and similar) at the network layer; (3) Limit webhook creation permissions to trusted administrators only through role-based access controls; (4) Monitor outbound HTTP/HTTPS traffic from MLflow for anomalous destinations.

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Threat Intel
1
1 source
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 HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
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-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