---
id: "CVE-2026-53995"
kind: "vulnerability"
aliases: ["CVE-2026-53995", "GHSA-wqmh-qccw-pqwf"]
title: "MLflow FileStore trace IDs allow path traversal and arbitrary file writes"
severity: "high"
cvss: 8.8
epss: 0.00561
exploited: false
status: "open"
category: "package"
products: [{"name": "mlflow", "fixed": ["3.17.2"], "affected": "<= 3.17.1", "ecosystem": "pypi"}]
ecosystems: ["pypi"]
tags: ["cwe-22", "mlflow", "package", "python", "self-hosted"]
not_affected_if: ["auth-required", "database-backend", "managed-hosting"]
published_at: "2026-10-19T22:17:11+00:00"
first_seen_at: "2026-10-23T21:39:59+00:00"
updated_at: "2026-10-23T21:57:19+00:00"
sources: [{"source": "ghsa", "url": "https://github.com/advisories/GHSA-wqmh-qccw-pqwf", "first_seen_at": "2026-10-23T21:39:59+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-53995", "first_seen_at": "2026-10-23T21:57:19+00:00"}]
---

# MLflow FileStore trace IDs allow path traversal and arbitrary file writes

MLflow's FileStore tracking backend does not sanitize trace IDs, so a crafted ID in a POST to /api/3.0/mlflow/traces makes the server write files outside the experiment trace directory. An unauthenticated attacker can plant attacker-controlled YAML and metadata files at paths the server process can write to.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- pypi:mlflow affected <= 3.17.1 fixed 3.17.2

## How to check

Check whether the tracking backend is FileStore: look for file:// or a local ./mlruns path in MLFLOW_TRACKING_URI or the server's --backend-store-uri.
If the backend is a SQLite or database URI, the FileStore code path is not in use.

## Fix

Upgrade mlflow to 3.17.2 or later.
If you cannot upgrade, switch the backend store away from FileStore (for example to a SQLite or database URI) or restrict network access to the tracking server.

## Timeline

- 2026-10-23T21:39:59+00:00 ghsa https://github.com/advisories/GHSA-wqmh-qccw-pqwf
- 2026-10-23T21:57:19+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-53995

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
