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
- CVE-2026-116690 · High · known exploited
- CVE-2025-11200 · High
- CVE-2025-11201 · High · known exploited
- CVE-2024-3848 · High · known exploited
- 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
Vendor action
Apply remediations or mitigations per vendor instructions or discontinue use of the product if remediation or mitigations are unavailable.
Version check
Affected < 3.17.0
Advisory
Open the cve_org record and follow its fix.
Official advisories
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.
Oct 23, 2026 · Red Hat Security Data
Detected
mlflow: mlflow: Server-Side Request Forgery via insecure scorer deserialization
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
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.
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