CVE-2026-115886: MLflow: SSRF on unauthenticated MLflow servers via third-party scorer kwargs in the scorer invoke, register, and GenAI evaluate endpoints
Vulnerability summary
CVE-2026-115886 is a medium (CVSS 6.5) Unsafe Reflection vulnerability in mlflow. EPSS estimates a 0.32% chance of exploitation in the next 30 days, higher than 25.2% of scored vulnerabilities.
Timeline
- 23-10-2026PublishedVulnerability first disclosed.
Description
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 constraining the selected class or its constructor arguments. When optional trulens and trulens-providers-litellm packages are installed, an attacker can select mlflow.genai.scorers.trulens, choose a model URI outside MLflow's native provider registry so execution uses the LiteLLM fallback, and supply api_base and api_key values that cause the server to send an outbound request to an attacker-chosen or internal host with attacker-controlled headers and body. The vulnerable deserialization occurs before a tracking-store lookup or job submission. This issue is fixed in version 3.17.0.
CVSS metrics
3 scores · 3 sources · 1 version- NVDNIST6.5MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- OSV · PypiEcosystem advisory · calculated6.5MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
EPSS trend
Probability
0.32%
Chance of exploitation in the next 30 days
Percentile
25%
Versus all other CVEs
30-day change
Change unavailable
Change unavailable
Known exploited
Compare KEV catalogsNot in the CISA KEV catalog.
Not in the ENISA CNW catalog.
Not in the CIRCL catalog.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root cause- CWE-470Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')The product uses external input with reflection to select which classes or code to use, but it does not sufficiently prevent the input from selecting improper classes or code.
- CWE-918Server-Side Request Forgery (SSRF)The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Affected systems
Chainguard5 products
- nemo-rl-cuda-13.0All versions (No fix recorded)
- nemo-rl-cuda-13.0-automodelAll versions (No fix recorded)
- nemo-rl-cuda-13.0-mcoreAll versions (No fix recorded)
- nemo-rl-cuda-13.0-sglangAll versions (No fix recorded)
- nemo-rl-cuda-13.0-vllmAll versions (No fix recorded)
Mlflow1 product
- mlflow≥ 3.12.0rc0, < 3.17.0
PyPI1 product
- mlflow≥ 3.12.0rc0, < 3.17.0
3 vendors · 7 products
References
5 links- github.com/mlflow/mlflowPACKAGE