{"id":"CVE-2026-116690","title":"MLflow: Arbitrary file read on unauthenticated MLflow servers via prompt model version source","summary":"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 _create_model_version() accepts schemeless relative sources because path vali…","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cvssSource":"cna","cwe":["CWE-22"],"vendor":"mlflow","product":"mlflow","affected":["mlflow >= 3.10.0, < 3.17.0"],"ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"partial","timestamp":"2026-10-28T15:54:25.087287Z"},"published":"2026-10-27","updated":"2026-10-28","sourceUpdated":"2026-10-28T16:13:38.096Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-116690","references":[{"url":"https://github.com/mlflow/mlflow/security/advisories/GHSA-m65p-9j7q-6w33","label":"https://github.com/mlflow/mlflow/security/advisories/GHSA-m65p-9j7q-6w33"},{"url":"https://github.com/mlflow/mlflow/pull/25870","label":"https://github.com/mlflow/mlflow/pull/25870"},{"url":"https://github.com/mlflow/mlflow/commit/81730a2ce4ebcd60d5d18f68c96f422ad7e30772","label":"https://github.com/mlflow/mlflow/commit/81730a2ce4ebcd60d5d18f68c96f422ad7e30772"},{"url":"https://github.com/mlflow/mlflow/releases/tag/v3.17.0","label":"https://github.com/mlflow/mlflow/releases/tag/v3.17.0"},{"url":"https://github.com/advisories/GHSA-m65p-9j7q-6w33"}],"tags":["cve.org","ghsa","pip"],"epss":0.00559,"epssPercentile":0.46444,"aliases":["GHSA-m65p-9j7q-6w33"],"ecosystem":"pip","patched":["mlflow 3.17.0"],"ingestedAt":"2026-10-27T19:54:27.801Z","slug":"CVE-2026-116690","body":"## Overview\n\nMLflow 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 _create_model_version() accepts schemeless relative sources because path validation runs only when a source has a URL scheme, and mlflow.prompt.is_prompt 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.\n\n## Affected\n\n- `mlflow >= 3.10.0, < 3.17.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-116690)\n\nAffected packages:\n\n- `mlflow >= 3.10.0, < 3.17.0`\n\nPatched in:\n\n- `mlflow 3.17.0`\n\nSource: https://github.com/advisories/GHSA-m65p-9j7q-6w33","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}