← All advisories
CVE-2026-127202mediumBroken access control2026-11-12

CVE-2026-127202: MLflow FileStore lets unauthenticated callers write outside the run directory via model_id in log_outputs, fixed in 3.18.0

MLflow tracking servers before 3.18.0 that use the FileStore backend join the model_id from POST /api/3.0/mlflow/runs/outputs into a path without checking it. An unauthenticated caller can send ../ sequences to create directories and write a meta.yaml file anywhere the server account can write. Upgrade to 3.18.0.

01.

What it is

FileStore.log_outputs joined the request model_id into <run>/outputs/<model_id> and created the directory, so a model_id containing .. or an absolute path resolved outside the run (PR #27131, merged 26 Oct 2026).

The fix validates model ids as a single path component in log_outputs, and also in _get_model_dir, which covers model metrics.

FileStore was the default backend before MLflow 3.7.0; from 3.7.0 it is opt-in through MLFLOW_ALLOW_FILE_STORE. Servers on a database backend are not affected by this bug. It follows the earlier FileStore trace path traversal CVE-2026-53995.

Reported by Florian Kabashi; CVE assigned by VulnCheck on 12 Nov 2026.

02.

How to check

  1. Run pip show mlflow and see whether the version is below 3.18.0.
  2. Check whether your tracking server uses a file-based backend store (a local path or file:// URI, or MLFLOW_ALLOW_FILE_STORE set) and whether it is reachable without authentication.
03.

How to fix

  1. Upgrade MLflow to 3.18.0 or later.
  2. Move the tracking server to a database backend, keep it off untrusted networks or behind authentication, and run it as a low-privilege account.
pip show mlflow | grep -i ^version
pip install -U 'mlflow>=3.18.0'
04.

Sources

More advisories for this tool
The weekly email

One email a week. Only what changed.

Every new security hole in AI coding tools, MCP servers, app builders and the stacks they generate (Next.js, Supabase, Node, PHP), each with how to check your app and the fix. No roundups of things you already read.

Free, one email a week. Read the latest issue first if you like. One-click unsubscribe in every email. We never sell or share addresses.