MLflow FileStore trace IDs allow path traversal and arbitrary file writes
🔗 CVE IDs covered (1)
📋 Description
MLflow 3.17.1 and earlier contains a path traversal vulnerability in the FileStore tracking backend that allows unauthenticated attackers to control filesystem paths by submitting a crafted trace ID containing traversal sequences to the POST /api/3.0/mlflow/traces endpoint. Attackers can exploit FileStore.start_trace() to write trace_info.yaml, request_metadata, and tag files with attacker-controlled metadata outside the intended experiment trace directory, subject to the server process's filesystem permissions. FileStore is the default tracking backend before MLflow 3.7.0 and opt-in thereafter (the default changed to a SQLite database), so deployments in the earlier part of the affected range are vulnerable without special configuration while later ones are affected only when FileStore is explicitly selected.
🎯 Affected products1
- pip/mlflow:<= 3.17.1
🔗 References (8)
- https://nvd.nist.gov/vuln/detail/CVE-2026-53995
- https://github.com/mlflow/mlflow/pull/26842
- https://github.com/SaiTeja-Erukude/CVE-2026-53995-mlflow-path-traversal
- https://www.vulncheck.com/advisories/mlflow-path-traversal-via-trace-id-api
- https://github.com/mlflow/mlflow/issues/26979
- https://github.com/mlflow/mlflow/commit/31ff9e56f5038d61ec75344518912945f60dffec
- https://github.com/mlflow/mlflow/releases/tag/v3.17.2
- https://github.com/advisories/GHSA-wqmh-qccw-pqwf