MLflow Webhook Test Endpoint Server-Side Request Forgery (SSRF) Vulnerability (CVE-2026-64849)
Executive & SecOps Summary
SECOPS ASSESSMENTMLflow versions from 3.3.0 prior to 3.15.0
Unauthenticated attackers can bypass URL validation to access internal network resources or cloud metadata services, potentially retrieving sensitive credentials and response data.
Immediately upgrade MLflow to version 3.15.0 or later, and restrict access to the webhook test endpoint in the interim.
Affected Products & Version Scope
Remediation & Live Workaround Commands
PATCH & WORKAROUND1. Official Patch (Recommended)
Upgrade your MLflow installation to version 3.15.0 or higher. The patch ensures that redirected URLs are properly re-validated and resolved addresses are pinned.
# Using pip
pip install --upgrade mlflow>=3.15.0
# Using poetry
poetry add mlflow@latest2. Temporary Mitigations
If upgrading immediately is not feasible, implement the following security controls:
- WAF / Reverse Proxy Rules:
Block external access to the /api/2.0/mlflow/webhooks/*/test endpoint.
- Harden Cloud Metadata Access:
In AWS environments, enforce IMDSv2 and set the metadata response hop limit to 1 to prevent containerized applications from accessing the host's metadata service.
- Egress Network Filtering:
Configure firewall rules (e.g., Security Groups, Kubernetes NetworkPolicies) to restrict the MLflow server from making outbound requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and the link-local address (169.254.169.254).
Detect Container Escape & Privilege Escalation Across Your Kubernetes Fleet
Continuous eBPF-based runtime threat detection and posture management for AWS, GCP, Azure, Docker, and Kubernetes workloads.
Technical Root Cause & Exploitation Mechanics
A critical Server-Side Request Forgery (SSRF, CWE-918) vulnerability has been identified in MLflow, an open-source AI engineering platform. The vulnerability resides in the unauthenticated POST /api/2.0/mlflow/webhooks/{id}/test endpoint.
Root Cause & Exploit Mechanics:
- Incomplete Validation: The
_validate_webhook_url()function inmlflow/utils/validation.pyonly validates the initial URL provided in the request. - Redirect Handling Flaw: The actual delivery mechanism in
mlflow/webhooks/delivery.pyfollows HTTP redirects and re-resolves the destination hostname without pinning or re-validating the resolved IP address. - Bypass Technique: An attacker can supply a benign-looking domain that passes the initial validation, but configure that domain to redirect to internal loopback addresses (
127.0.0.1) or cloud Instance Metadata Services (IMDS) (169.254.169.254). This allows the attacker to bypass the validation logic entirely and receive theresponse_statusandresponse_bodyof the internal request.
Impact: With a CVSS score of 9.3 (Critical) and its inclusion in the CISA KEV catalog, this vulnerability is actively exploited in the wild. Attackers can leverage this flaw to scan internal networks, access restricted local services, or extract cloud IAM credentials from IMDS, leading to potential cloud infrastructure compromise.
Official Vendor Advisories & References
MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. Starting in 3.3.0 and 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.
Subscribe to Daily Vulnerability Briefings & KEV Alerts
Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.