mlflow ships its tracking server without auth by default. CVE-2026-118628, CVSS 8.2, turns that into ssrf. create an experiment, set artifact_location to http://169.254.169.254/latest/meta-data/, then call get-artifacts. the server fetches whatever url the stored record names. no scheme check, no ip blocklist. the response comes back through get-artifacts, which means cloud credentials, internal services, port scans, all in the server's context. fixed in 3.17.0, PR #25891, which pins artifact hosts to the operator's default artifact root. the check to run this week: is your tracking server reachable, and is it still on a version before 3.17.0. auth alone is not the fix here, the fix is the host policy. and if you run the wsgi app directly instead of mlflow server, export the env var, or the registry check stays off.
write-up: https://zeropath.com/blog/cve-2026-118628-mlflow-get-artifacts-ssrf