CVE-2023-2356: MLflow: path traversal allows unauthenticated file read
HIGH PoC AVAILABLE NUCLEI TEMPLATE CISA: ATTENDAny internet-accessible MLflow tracking server running below 2.3.1 is fully exposed — no credentials required, single HTTP request. Patch immediately to 2.3.1+; if patching is delayed, isolate MLflow behind a VPN or internal network boundary. Audit whether your MLflow instances store cloud credentials, API keys, or model artifacts on the same filesystem.
Risk Assessment
Effective risk is HIGH to CRITICAL in practice despite the CVSS 7.5 score. The combination of no authentication, no user interaction, low complexity, and network access makes this trivially weaponizable. MLflow is often deployed with broad filesystem access on servers that also store cloud provider credentials, Hugging Face tokens, and training datasets. Organizations that expose MLflow tracking servers directly (dev shortcuts, misconfigured cloud SGs) face immediate data breach risk.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| mlflow | pip | — | No patch |
Do you use mlflow? You're affected.
Severity & Risk
Attack Surface
Recommended Action
5 steps-
PATCH
Upgrade MLflow to 2.3.1 or later immediately — this is the only complete fix.
-
NETWORK ISOLATION
If patching is delayed, restrict MLflow access to VPN/internal networks via firewall rules or security groups. Block public internet access.
-
LEAST PRIVILEGE
Run MLflow process with a dedicated service account with minimal filesystem permissions — no access to ~/.aws, ~/.ssh, or application secrets.
-
DETECTION
Search logs for requests containing '../', '%2e%2e', or URL-encoded path traversal sequences against MLflow endpoints. Alert on any request that resolves outside the MLflow artifact root.
-
AUDIT
Enumerate all MLflow deployments in your environment; check if any are publicly accessible via cloud provider asset inventory tools.
CISA SSVC Assessment
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2023-2356?
Any internet-accessible MLflow tracking server running below 2.3.1 is fully exposed — no credentials required, single HTTP request. Patch immediately to 2.3.1+; if patching is delayed, isolate MLflow behind a VPN or internal network boundary. Audit whether your MLflow instances store cloud credentials, API keys, or model artifacts on the same filesystem.
Is CVE-2023-2356 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2023-2356, increasing the risk of exploitation.
How to fix CVE-2023-2356?
1. PATCH: Upgrade MLflow to 2.3.1 or later immediately — this is the only complete fix. 2. NETWORK ISOLATION: If patching is delayed, restrict MLflow access to VPN/internal networks via firewall rules or security groups. Block public internet access. 3. LEAST PRIVILEGE: Run MLflow process with a dedicated service account with minimal filesystem permissions — no access to ~/.aws, ~/.ssh, or application secrets. 4. DETECTION: Search logs for requests containing '../', '%2e%2e', or URL-encoded path traversal sequences against MLflow endpoints. Alert on any request that resolves outside the MLflow artifact root. 5. AUDIT: Enumerate all MLflow deployments in your environment; check if any are publicly accessible via cloud provider asset inventory tools.
What systems are affected by CVE-2023-2356?
This vulnerability affects the following AI/ML architecture patterns: MLOps platforms, model registries, training pipelines, experiment tracking systems, model serving.
What is the CVSS score for CVE-2023-2356?
CVE-2023-2356 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 90.45%.
Technical Details
NVD Description
Relative Path Traversal in GitHub repository mlflow/mlflow prior to 2.3.1.
Exploitation Scenario
An adversary scanning for exposed MLflow tracking servers (port 5000/5001, or via cloud metadata) identifies an unpatched instance. They craft a GET request to the MLflow artifact API with a relative path traversal payload (e.g., /api/2.0/mlflow/artifacts/get?path=../../.aws/credentials&run_id=<valid_run_id>). With no authentication enforced, the server returns the AWS credentials file. The attacker uses the harvested keys to access S3 buckets containing proprietary model weights, training datasets, or customer data. In a more targeted scenario, the attacker reads the MLflow database connection string or a mounted secrets file to pivot laterally into the ML infrastructure.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N References
Timeline
Scanner Template Available
A Nuclei vulnerability scanner template exists for this CVE. You can scan your infrastructure for this vulnerability immediately.
View template on GitHubnuclei -t http/cves/2023/CVE-2023-2356.yaml -u https://target.example.com Related Vulnerabilities
CVE-2025-15379 10.0 MLflow: RCE via unsanitized model dependency specs
Same package: mlflow CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same package: mlflow CVE-2023-2780 9.8 MLflow: path traversal allows arbitrary file read/write
Same package: mlflow CVE-2026-2635 9.8 mlflow: security flaw enables exploitation
Same package: mlflow CVE-2023-1177 9.8 MLflow: path traversal allows arbitrary file read/write
Same package: mlflow
AI Threat Alert