Vulnerabilities

Vulnerability · CVE-2026-115886

MLflow: SSRF on unauthenticated MLflow servers via third-party scorer kwargs in the scorer invoke, register, and GenAI evaluate endpoints

Published Oct 23, 2026 · catalog updated Oct 29, 2026 · MLflow MLflow

Last checked Nov 1, 2026. A connected source was read within the last 7 days.

Patch now

CVE-2026-115886 is in the CISA known-exploited catalog. Confirm MLflow MLflow against the vendor advisory and apply that fix. The CVSS score does not change the priority.

Same product and reporting

Severity
Medium6.5
Known exploitation
CISA KEV and VulnCheck KEV
EPSS
0.68%
Remediation
Remediation guidance
Affected products
pip mlflow · pypi mlflow · vendor MLflow MLflow · vendor MLflow mlflow

### Summary MLflow's tracking server exposes with **no authentication**, and the handler reflectively instantiates an attacker-named class from attacker-supplied JSON with unconstrained constructor kwargs. With the optional + packages installed, an unauthenticated attacker can force the server to make an outbound HTTP request to an arbitrary host of their choosing, carrying attacker-controlled headers (SSRF). ### Details reflects a class name from a JSON payload behind an import-path allowlist that never constrains the reflected attribute or its kwargs, in : The allowlist ( ) only gates the import path: For a class, the forwarded / reach an outbound LLM client through a routing choice the attacker controls ( ): Only the fallback branch reaches raw ; a URI outside MLflow's native provider registry (e.g. ) trivially routes there, and forwards / straight into . - Route: → ( ), guarded only by / — no auth decorator. - (the vulnerable deserialization) runs synchronously, before any tracking-store lookup or call. - Precondition: the server venv must have + installed (a documented but optional, not-bundled GenAI-eval setup). ### PoC The request landing on , carrying the attacker's own header, is the server-originated outbound request — no request was ever sent by the client to that host directly. ### Impact An unauthenticated attacker forces the tracking server to issue an outbound HTTP request to an arbitrary attacker-chosen host — reachable from the server's network position, including internal services or cloud-metadata endpoints — with fully attacker-controlled request headers and body. This is SSRF with header/credential injection into the server-originated request; it requires no prior authentication and no operator misconfiguration beyond having the optional + packages installed alongside MLflow.

Are you affected?

Enter the version you run. The result uses only the ranges stored on this record.

The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.

  • pip mlflow>= 3.12.0rc0, < 3.17.0
  • pypi mlflowversion unspecified
  • vendor MLflow MLflowversion unspecified
  • vendor MLflow mlflowversion unspecified

How to fix CVE-2026-115886

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

CVE-2026-115886 is in the CISA known-exploited catalog. Confirm MLflow MLflow against the vendor advisory and apply that fix. The CVSS score does not change the priority.

Which versions are affected?

Compare what you have installed with >= 3.12.0rc0, < 3.17.0. Apply remediations or mitigations per vendor instructions or discontinue use of the product if remediation or mitigations are unavailable.

What should an analyst verify?

CWE-470; CWE-918: Server-Side Request Forgery (SSRF). EPSS 0.68%. The CISA KEV listing is the exploitation evidence. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Oct 23, 2026 · Red Hat Security Data

    Detected

    mlflow: mlflow: Server-Side Request Forgery via insecure scorer deserialization

  2. Oct 23, 2026 · GitHub Advisory Database

    Updated

    ### Summary MLflow's tracking server exposes with **no authentication**, and the handler reflectively instantiates an attacker-named class from attacker-supplied JSON with unconstrained constructor kwargs. With the optional + packages installed, an unauthenticated attacker can force the server to make an outbound HTTP request to an arbitrary host of their choosing, carrying attacker-controlled hea

  3. Oct 29, 2026 · CISA KEV

    Known exploited

    Apply remediations or mitigations per vendor instructions or discontinue use of the product if remediation or mitigations are unavailable.

  4. Oct 29, 2026 · VulnCheck KEV

    Updated

    MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. From 3.12.0rc0 until 3.17.0, the scorer invoke, register, and GenAI evaluate endpoints, including unauthenticated POST /ajax-api/3.0/mlflow/scorer/invoke, accept serialized third-party scorer data that Scorer.model_validate_json resolves using a module-path allowlist without constrainin

Sources

  • CVE.orgVulnerability recordCVE-2026-115886

    Official CVE identifier

    cve.org
  • FIRST EPSSExploitation probabilityCVE-2026-115886

    30-day exploitation probability 0.68%

    first.org
  • GitHub Advisory DatabasePackage advisoryGHSA-2wqp-q3c6-ccj5

    MLflow: SSRF on unauthenticated MLflow servers via third-party scorer kwargs in the scorer invoke, register, and GenAI evaluate endpoints

    github.com
  • GitLab Advisory DatabasePackage advisoryCVE-2026-115886

    MLflow's tracking server exposes POST /ajax-api/3.0/mlflow/scorer/invoke with no authentication, and the handler reflectively instantiates an attacker-named class from attacker-supplied JSON with unconstrained constructor kwargs. With the optional trulens + trulens-providers-litellm packages installed, an unauthenticated attacker can force the server to make an outbound HTTP request to an arbitrar

    advisories.gitlab.com
  • Nuclei TemplatesDetection templateCVE-2026-115886

    CVE-2026-115886 has a public Nuclei detection template.

    github.com
  • Red Hat Security DataVendor advisoryCVE-2026-115886

    mlflow: mlflow: Server-Side Request Forgery via insecure scorer deserialization

    access.redhat.com
  • VulnCheck KEVConfirmed exploitationCVE-2026-115886

    MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. From 3.12.0rc0 until 3.17.0, the scorer invoke, register, and GenAI evaluate endpoints, including unauthenticated POST /ajax-api/3.0/mlflow/scorer/invoke, accept seria

    vulncheck.com

References

Freshness

Last verified in this catalog Nov 1, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • FIRST EPSSNov 1, 2026
  • Nuclei TemplatesNov 1, 2026
  • VulnCheck KEVNov 1, 2026
  • GitLab Advisory DatabaseOct 27, 2026
  • Red Hat Security DataOct 26, 2026
  • CVE.orgOct 24, 2026
  • GitHub Advisory DatabaseOct 24, 2026