CVE-2026-127202: MLflow: path traversal in FileStore allows arbitrary file write
MEDIUMMLflow before 3.18.0 with the FileStore backend lets an unauthenticated remote attacker send a crafted model_id containing ../ sequences to the log outputs API. The server then creates directories and writes a meta.yaml file anywhere the server account has permission to write. Impact is limited to integrity, since the attacker controls only a small YAML file and gets no direct code execution or data disclosure, which is why the CVSS score is a moderate 5.3. Urgency is also tempered by the lack of a public exploit, Nuclei template, CISA KEV listing or EPSS data, but FileStore was the default backend before 3.7.0, so older and long-lived tracking servers are the most likely to be exposed. Upgrade to MLflow 3.18.0 or later, migrate off FileStore to a database-backed store, and make sure tracking servers are not reachable from untrusted networks without authentication.
What is the risk?
Medium overall. Exploitation is trivial (network, low complexity, no privileges, no user interaction), but impact is limited to low integrity with no confidentiality or availability effect in the CVSS vector. There is no public exploit, scanner template or KEV listing, and EPSS is unavailable. Risk rises sharply for internet-exposed or unauthenticated MLflow tracking servers running as a privileged user, or in environments where the writable filesystem includes sensitive configuration or application directories. Written files are limited to meta.yaml, which reduces the chance of direct code execution but does not rule out chaining with other weaknesses.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| MLflow | pip | — | No patch |
Do you use MLflow? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade MLflow to 3.18.0 or later (fix in PR 27131 and the linked commit). 2) Migrate from FileStore to a SQL-backed tracking store and remove MLFLOW_ALLOW_FILE_STORE where it is not needed. 3) Do not expose the MLflow tracking server to the internet; put it behind an authenticating reverse proxy, VPN or private network. 4) Run the MLflow server as a low-privilege account with write access limited to the artifact and store directories, ideally in a container with a read-only root filesystem. 5) Detection: alert on POST requests to /api/3.0/mlflow/runs/outputs with model_id values containing ../ or encoded variants (%2e%2e), and monitor for unexpected meta.yaml files outside the mlruns directory.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-127202?
MLflow before 3.18.0 with the FileStore backend lets an unauthenticated remote attacker send a crafted model_id containing ../ sequences to the log outputs API. The server then creates directories and writes a meta.yaml file anywhere the server account has permission to write. Impact is limited to integrity, since the attacker controls only a small YAML file and gets no direct code execution or data disclosure, which is why the CVSS score is a moderate 5.3. Urgency is also tempered by the lack of a public exploit, Nuclei template, CISA KEV listing or EPSS data, but FileStore was the default backend before 3.7.0, so older and long-lived tracking servers are the most likely to be exposed. Upgrade to MLflow 3.18.0 or later, migrate off FileStore to a database-backed store, and make sure tracking servers are not reachable from untrusted networks without authentication.
Is CVE-2026-127202 actively exploited?
No confirmed active exploitation of CVE-2026-127202 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-127202?
1) Upgrade MLflow to 3.18.0 or later (fix in PR 27131 and the linked commit). 2) Migrate from FileStore to a SQL-backed tracking store and remove MLFLOW_ALLOW_FILE_STORE where it is not needed. 3) Do not expose the MLflow tracking server to the internet; put it behind an authenticating reverse proxy, VPN or private network. 4) Run the MLflow server as a low-privilege account with write access limited to the artifact and store directories, ideally in a container with a read-only root filesystem. 5) Detection: alert on POST requests to /api/3.0/mlflow/runs/outputs with model_id values containing ../ or encoded variants (%2e%2e), and monitor for unexpected meta.yaml files outside the mlruns directory.
What systems are affected by CVE-2026-127202?
This vulnerability affects the following AI/ML architecture patterns: training pipelines, experiment tracking, model registry, MLOps platforms.
What is the CVSS score for CVE-2026-127202?
CVE-2026-127202 has a CVSS v3.1 base score of 5.3 (MEDIUM).
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
MLflow before 3.18.0 using the FileStore backend contains a path traversal vulnerability that allows unauthenticated remote attackers to write files outside the intended run directory by supplying a malicious model_id parameter to the log outputs API. Attackers can exploit the unvalidated model_id containing ../ sequences via the POST /api/3.0/mlflow/runs/outputs endpoint to create directories and write a meta.yaml file at arbitrary filesystem locations, limited only by the server account's permissions. FileStore was the default backend before 3.7.0 and is opt-in afterward through MLFLOW_ALLOW_FILE_STORE.
Exploitation Scenario
An attacker scans for exposed MLflow tracking servers and finds one running an older version with the default FileStore backend and no authentication. They send a POST to /api/3.0/mlflow/runs/outputs with a model_id such as ../../../../srv/shared/models/prod, causing the server to create the directory tree and write a meta.yaml file there. By targeting paths used by other applications or by existing metadata, they can overwrite or corrupt files, disrupt experiment tracking or deployment pipelines, and plant files in locations that other tooling later reads.
Weaknesses (CWE)
CWE-22Improper Limitation of a Pathname to a Restricted DirectoryPrimaryCWE-22Improper Limitation of a Pathname to a Restricted DirectoryCWE-22 — Improper Limitation of a Pathname to a Restricted Directory: The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
- [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylis
- [Architecture and Design] For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NReferences
Timeline
Related Vulnerabilities
CVE-2025-1537910.0MLflow: RCE via unsanitized model dependency specs
Same package: mlflowCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same package: mlflowCVE-2023-27809.8MLflow: path traversal allows arbitrary file read/write
Same package: mlflowCVE-2023-11779.8MLflow: path traversal allows arbitrary file read/write
Same package: mlflowCVE-2026-26359.8mlflow: security flaw enables exploitation
Same package: mlflow