CVE-2026-116690: MLflow: Arbitrary file read on unauthenticated MLflow servers via prompt model version source
MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. From 3.10.0 until 3.17.0, the prompt branch in createmodelversion() accepts schemeless relative sources because path validation runs only when a source has a URL scheme, and mlflow.prompt.isprompt is interpreted by tag presence rather than a true value. A remote caller can store a server-local path as the model version artifact location and use /api/2.0/mlflow/model-versions/get-artifact to read files accessible to the MLflow server process. Default unauthenticated servers require no privileges, while basic-auth deployments are exposed to authenticated users who can create registered models. This issue is fixed in version 3.17.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
MLflowto a version that resolves this vulnerability.Fixed in 3.17.0
Event History
Frequently Asked Questions
Which deployments are exposed?
MLflow versions from 3.10.0 up to, but not including, 3.17.0 are affected. Unauthenticated MLflow servers can be exploited without privileges; deployments using basic authentication are exposed to authenticated users able to create registered models.
What does an attacker need to do to exploit this?
The attacker must create a model version whose artifact location is a server-local relative path and cause it to be treated as a prompt model. They can then use the model-version artifact API endpoint to read files that the MLflow server process can access.
What is the impact of successful exploitation?
An attacker can read arbitrary files accessible to the MLflow server process. The provided information describes confidentiality impact only; it does not indicate modification or service-disruption capability.
What should be done if an immediate upgrade is not possible?
Require authentication and restrict the ability to create registered models to trusted users. This reduces exposure from unauthenticated remote callers, but authenticated users with registered-model creation permissions remain at risk until upgrading to 3.17.0.