CVE-2023-1176: MLflow: path traversal exposes arbitrary local files
LOW PoC AVAILABLE CISA: TRACK*MLflow installations prior to 2.2.2 allow any low-privilege local user to read arbitrary files on the host via absolute path traversal. While CVSS is low (local vector), MLflow servers frequently run in shared data science environments alongside sensitive artifacts—API keys, model weights, and training data secrets are realistic targets. Patch to 2.2.2+ immediately; if patching is blocked, restrict MLflow access to trusted principals only.
Risk Assessment
CVSS 3.3 understates operational risk in typical ML environments. The local attack vector assumes shared infrastructure—common in data science teams where multiple users access the same MLflow tracking server. A compromised or malicious data scientist account could leverage this to pivot: reading SSH keys, cloud credentials, or environment files (.env) stored on the MLflow host. No network exposure required, no user interaction needed. Effective risk is MEDIUM in multi-tenant ML environments, LOW in single-user setups.
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.2.2 or later (commit 63ef72aa). This is the only complete fix.
-
Workaround (if patching blocked): Restrict MLflow server access via OS-level permissions—run MLflow under a dedicated service account and limit which users can invoke it.
-
Secrets hygiene: Audit the MLflow host for credentials stored in plaintext (env files, config files, ~/.aws, ~/.ssh). Rotate any found.
-
Detection: Monitor MLflow server logs for artifact paths containing '../' sequences or absolute paths outside expected artifact root directories.
-
Network isolation: Ensure MLflow tracking server is not internet-exposed; bind to localhost or internal network only.
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-1176?
MLflow installations prior to 2.2.2 allow any low-privilege local user to read arbitrary files on the host via absolute path traversal. While CVSS is low (local vector), MLflow servers frequently run in shared data science environments alongside sensitive artifacts—API keys, model weights, and training data secrets are realistic targets. Patch to 2.2.2+ immediately; if patching is blocked, restrict MLflow access to trusted principals only.
Is CVE-2023-1176 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2023-1176, increasing the risk of exploitation.
How to fix CVE-2023-1176?
1. Patch: Upgrade MLflow to 2.2.2 or later (commit 63ef72aa). This is the only complete fix. 2. Workaround (if patching blocked): Restrict MLflow server access via OS-level permissions—run MLflow under a dedicated service account and limit which users can invoke it. 3. Secrets hygiene: Audit the MLflow host for credentials stored in plaintext (env files, config files, ~/.aws, ~/.ssh). Rotate any found. 4. Detection: Monitor MLflow server logs for artifact paths containing '../' sequences or absolute paths outside expected artifact root directories. 5. Network isolation: Ensure MLflow tracking server is not internet-exposed; bind to localhost or internal network only.
What systems are affected by CVE-2023-1176?
This vulnerability affects the following AI/ML architecture patterns: MLOps platforms, training pipelines, model registries, experiment tracking servers, shared data science infrastructure.
What is the CVSS score for CVE-2023-1176?
CVE-2023-1176 has a CVSS v3.1 base score of 3.3 (LOW). The EPSS exploitation probability is 0.16%.
Technical Details
NVD Description
Absolute Path Traversal in GitHub repository mlflow/mlflow prior to 2.2.2.
Exploitation Scenario
A data scientist with a standard user account on a shared ML training server submits an MLflow experiment referencing an artifact path of '/etc/shadow' or '/home/mlpipeline/.env'. The pre-2.2.2 server follows the absolute path without sanitization and serves the file contents. The attacker reads cloud provider credentials (AWS_SECRET_ACCESS_KEY, GCP service account JSON) stored in the pipeline environment file, then uses those credentials to exfiltrate the production model registry from S3/GCS—achieving full AI IP theft with no exploitation complexity.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N References
Timeline
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