<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>MLflow - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/mlflow/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 18 Aug 2026 00:46:13 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/mlflow/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>MLflow Tracking Server Unauthenticated Full-Read SSRF via Webhook Delivery</title><link>https://feed.craftedsignal.io/briefs/2026-08-mlflow-ssrf/</link><pubDate>Tue, 18 Aug 2026 00:46:13 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-mlflow-ssrf/</guid><description>MLflow Tracking Server versions prior to 3.15.0 are vulnerable to an unauthenticated full-read SSRF attack because the webhook delivery mechanism follows unvalidated HTTP redirects, allowing attackers to exfiltrate internal data or interact with local services.</description><content:encoded><![CDATA[<p>MLflow Tracking Server (v3.13.0 and earlier) contains an SSRF vulnerability (CVE-2026-64849) in its webhook delivery mechanism. While the application implements a validation function (<code>_validate_webhook_url</code>) intended to restrict connections to public IP addresses, the implementation fails to pin the resolved IP address, and the HTTP client follows redirects without re-validating the final destination. An unauthenticated attacker can create a webhook pointing to a controlled HTTPS endpoint that issues a 302 redirect to internal network resources, such as the AWS Instance Metadata Service (169.254.169.254) or loopback addresses. Because the synchronous <code>/api/2.0/mlflow/webhooks/{id}/test</code> endpoint reflects the response status and body back to the caller, this allows for unauthenticated full-read exfiltration of sensitive internal data or blind POST interactions with management interfaces on the local network.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies an internet-facing MLflow Tracking Server instance running with a default configuration (e.g., SQLite backend) lacking authentication plugins.</li>
<li>Attacker prepares a malicious HTTPS-enabled server that returns a 302 HTTP redirect to an internal target (e.g., http://169.254.169.254/latest/meta-data/iam/security-credentials/).</li>
<li>Attacker submits a POST request to <code>/api/2.0/mlflow/webhooks</code> with the <code>url</code> parameter pointing to the malicious attacker-controlled HTTPS endpoint.</li>
<li>MLflow validates the initial URL; since the attacker's endpoint is a valid public HTTPS URL, the <code>_validate_webhook_url</code> check passes.</li>
<li>Attacker triggers the SSRF by sending a request to the <code>/api/2.0/mlflow/webhooks/{id}/test</code> endpoint.</li>
<li>The MLflow server executes the webhook, follows the 302 redirect to the internal target without re-validation, and fetches the sensitive internal resource.</li>
<li>The server receives the internal response (e.g., cloud credentials) and reflects the full response body back to the attacker in the HTTP response of the <code>/test</code> request.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows unauthenticated attackers to exfiltrate sensitive cloud metadata (e.g., IAM role credentials), query internal-only services, or perform host scanning from the perspective of the MLflow server. Furthermore, by using 307 or 308 redirects, attackers can perform blind POST operations against internal management interfaces like Docker daemons or Spring Boot Actuator endpoints, potentially leading to remote code execution or service disruption within the internal network.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritize the following actions to secure your MLflow environment:</p>
<ul>
<li>Upgrade MLflow to version 3.15.0 or later immediately to patch CVE-2026-64849.</li>
<li>Enable MLflow authentication plugins to ensure that the webhook API is not accessible to unauthenticated users.</li>
<li>Implement network segmentation to isolate MLflow servers from sensitive cloud metadata endpoints (IMDSv1) and internal management interfaces.</li>
<li>Deploy the suggested webserver-level rules to detect potential SSRF attempts directed at common internal paths.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>ssrf</category><category>mlflow</category><category>web-vulnerability</category></item></channel></rss>