{"id":"CVE-2026-116690","revision":null,"records":[{"revision":"d1601905a6814e4a8e0158665f1f217b","observedAt":"2026-10-28T17:46:48.824+00:00","statement":{"source":"cve-program","id":"CVE-2026-116690","aliases":[],"title":"MLflow: Arbitrary file read on unauthenticated MLflow servers via prompt model version source","description":"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 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.","state":0,"publishedAt":"2026-10-27T19:42:35.798+00:00","modifiedAt":"2026-10-28T16:13:38.096+00:00","affected":[{"ecosystem":"Vendor product","name":"mlflow","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"mlflow\",\n                    \"product\": \"mlflow\",\n                    \"versions\": [\n                        {\n                            \"version\": \">= 3.10.0, < 3.17.0\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","score":7.5,"severity":"HIGH"}],"references":["https://github.com/mlflow/mlflow/security/advisories/GHSA-m65p-9j7q-6w33","https://github.com/mlflow/mlflow/pull/25870","https://github.com/mlflow/mlflow/commit/81730a2ce4ebcd60d5d18f68c96f422ad7e30772","https://github.com/mlflow/mlflow/releases/tag/v3.17.0"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-116690","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-116690","identifiers":["CVE-2026-116690"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-31T02:47:27.2544287+00:00","complete":true,"records":1766,"lastAttemptAt":"2026-10-31T02:47:27.2544287+00:00","lastSuccessAt":"2026-10-31T02:47:27.412022+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:47:27.4120229+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-9266d7b009bf9c4a0ccdcb5cbdea7f905cb3c4d92fd3b41581ece16b2cfdc4e7-d7f5a774da7dc1d7039b507f4f152d095052a9de5600b490bf90aeeb3ccce760","complete":true,"records":417488,"lastAttemptAt":"2026-10-31T02:45:38.6593437+00:00","lastSuccessAt":"2026-10-31T02:45:38.6372337+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:45:38.6593437+00:00","snapshotPublishedAt":"2026-10-31T02:28:41+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-39149994e3854f27b5e713b62480af55","complete":true,"records":13563,"lastAttemptAt":"2026-10-31T02:47:53.1518029+00:00","lastSuccessAt":"2026-10-31T00:45:56.62+00:00","error":null,"lastVerifiedAt":"2026-10-31T00:45:56.62+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13635,"expectedIdentifiers":13635,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-31T02:47:27.2544287+00:00","complete":true,"records":1094,"lastAttemptAt":"2026-10-31T02:47:27.2544287+00:00","lastSuccessAt":"2026-10-31T02:47:27.4127685+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:47:27.4127685+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-e07ef8e6642e41289c217437d69cabe7","complete":false,"records":13575,"lastAttemptAt":"2026-10-31T02:47:52.572535+00:00","lastSuccessAt":"2026-10-31T02:47:52.568+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:47:52.568+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13547,"expectedIdentifiers":13635,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-21dcd6662970dfea02e4ea60ee637115e8d92664947484d2b9276b3f6568a84f","complete":true,"records":9815,"lastAttemptAt":"2026-10-31T02:47:27.2108627+00:00","lastSuccessAt":"2026-10-30T23:47:34.1817587+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:47:27.2108627+00:00","snapshotPublishedAt":"2026-10-30T23:33:17+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-2de9ccc5290f060c7aa63f89c25dd76f655a64ba1aba7c05c97fa3bee4f09899","complete":true,"records":1967,"lastAttemptAt":"2026-10-31T02:45:38.7086939+00:00","lastSuccessAt":"2026-10-28T20:55:34.2982937+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:45:38.7086939+00:00","snapshotPublishedAt":"2026-10-28T20:03:08+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-f95f76cd406ae5bae3de632ad37fd2d5160b44f5e6b51748ac6f8f0c0c88e72b","complete":true,"records":3028,"lastAttemptAt":"2026-10-31T02:47:27.2247414+00:00","lastSuccessAt":"2026-10-30T23:47:38.4914494+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:47:27.2247414+00:00","snapshotPublishedAt":"2026-10-30T23:18:12+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-0d73c5ef3fc1482e9579e6438c4ee3a6c6252dd519f22ac62df687497937bd6c","complete":true,"records":230992,"lastAttemptAt":"2026-10-31T02:47:27.0834272+00:00","lastSuccessAt":"2026-10-31T02:47:25.6622408+00:00","error":null,"lastVerifiedAt":"2026-10-31T02:47:27.0834272+00:00","snapshotPublishedAt":"2026-10-31T02:33:22+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}