Skip to main content
VulnerabilityPublished

CVE-2026-2393: mlflow/mlflow · Server-Side Request Forgery (SSRF)

Affects mlflow/mlflowSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 7.1 High : upgrade to 3.9.0 soon.

Data as of 30 Oct 2026, 11:52 UTC

CVSS 3.0 base score
7.1High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.2% chance of exploitation in 30 days – higher than 21% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 3.9.0
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 11 May 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade mlflow to 3.9.0.

Affected software

ProductAffectedFixed in
mlflowmlflow/mlflowAffected
  • ≥ unspecified, < 3.10.0
Fixed in–
PyPImlflowpkg:pypi/mlflowOther threatsAffected
  • <3.9.0
Fixed in
  • 3.9.0

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

If you cannot patch yet, restrict access to MLflow backend interfaces to trusted users only, and monitor for suspicious webhook creation activity. Avoid exposing MLflow services to untrusted networks. Implement network-level controls to restrict outbound HTTP requests from the MLflow server to only necessary destinations.

Description

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.

References

Community reviews

Loading reviews…