MLflowに認証なしで任意のファイルを読み取られる脆弱性
Summary
MLflowの3.10.0から3.17.0までには、認証のないサーバーでサーバー上の任意のファイルを読み取られる脆弱性(CVE-2026-116690)があります。認証を設定していない既定の構成では、特別な権限がなくても悪用されるおそれがあります。修正版の3.17.0にアップデートしてください。
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
MLflowの3.10.0から3.17.0までには、認証のないサーバーでサーバー上の任意のファイルを読み取られる脆弱性(CVE-2026-116690)があります。認証を設定していない既定の構成では、特別な権限がなくても悪用されるおそれがあります。修正版の3.17.0にアップデートしてください。
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| mlflow | mlflow | — | — |
| pip | mlflow |
< 3.17.0 |
3.17.0 |
| PyPI | mlflow |
≥ 3.10.0, < 3.17.0 |
3.17.0 |
Original description The description as published by the source.
Summary
On MLflow tracking servers running without authentication, which is the default for mlflow server, a remote attacker can read arbitrary files from the server’s filesystem by creating a model version tagged as a prompt whose source is a schemeless local path.
The fix for CVE-2026-2614 in 3.10.0 added a prompt-specific branch to the CreateModelVersion handler that rejects file:// URIs and absolute paths but runs path validation only when the source carries a URL scheme. A schemeless value such as ../../etc, a plain relative name, ., a percent-encoded path, or a Windows drive-letter path is therefore stored unchanged as the model version’s artifact location, and the model-versions/get-artifact endpoint later serves files from it with the privileges of the server process. The tag check also keyed on the presence of the mlflow.prompt.is_prompt tag rather than its value, so a false value still selected the weaker branch.
Servers using --app-name basic-auth are also affected: any authenticated user can create a registered model, so a low-privilege account can use this to read the authentication database, including the admin password hash.
Affected: MLflow 3.10.0 through 3.16.1. Fixed in 3.17.0 by mlflow/mlflow#25870, which accepts only MLflow’s own placeholder sources for prompt versions and requires the prompt tag to be true.
Details
When creating a model version with the mlflow.prompt.is_prompt ta…
Source: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory