CVE-2023-6015: MLflow: unauthenticated arbitrary file write via PUT
HIGH PoC AVAILABLEAny internet-exposed MLflow instance is at critical risk. An unauthenticated attacker can write arbitrary files to the server without credentials, potentially overwriting model artifacts, injecting malicious payloads, or poisoning training pipelines. Restrict MLflow network access to internal networks immediately and apply available patches — this should never be internet-facing.
Risk Assessment
Effectively critical in real-world deployments despite CVSS 7.5. Zero-auth requirement combined with network accessibility and trivial exploitation creates maximum blast radius in ML environments, which historically lack network segmentation. MLflow instances are commonly deployed with default configurations and direct artifact store access, making lateral movement into the broader ML pipeline straightforward post-exploitation.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| mlflow | pip | — | No patch |
Do you use mlflow? You're affected.
Severity & Risk
Attack Surface
Recommended Action
7 steps-
Apply MLflow patch (versions released after 2023-11-16 address this).
-
If unpatched, immediately firewall MLflow port (default 5000/5001) to trusted CIDR ranges only.
-
Deploy MLflow behind an authenticating reverse proxy (OAuth2/OIDC or mTLS).
-
Audit artifact store for unexpected files — compare checksums against known-good baseline.
-
Enable file integrity monitoring on MLflow artifact directories and alert on unexpected writes.
-
If previously internet-exposed, treat as compromised: rotate all credentials, audit model artifacts for tampering, re-train from verified data snapshots.
-
Scan artifact store for deserialization risks (.pkl, .joblib files) that may have been replaced.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2023-6015?
Any internet-exposed MLflow instance is at critical risk. An unauthenticated attacker can write arbitrary files to the server without credentials, potentially overwriting model artifacts, injecting malicious payloads, or poisoning training pipelines. Restrict MLflow network access to internal networks immediately and apply available patches — this should never be internet-facing.
Is CVE-2023-6015 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2023-6015, increasing the risk of exploitation.
How to fix CVE-2023-6015?
1. Apply MLflow patch (versions released after 2023-11-16 address this). 2. If unpatched, immediately firewall MLflow port (default 5000/5001) to trusted CIDR ranges only. 3. Deploy MLflow behind an authenticating reverse proxy (OAuth2/OIDC or mTLS). 4. Audit artifact store for unexpected files — compare checksums against known-good baseline. 5. Enable file integrity monitoring on MLflow artifact directories and alert on unexpected writes. 6. If previously internet-exposed, treat as compromised: rotate all credentials, audit model artifacts for tampering, re-train from verified data snapshots. 7. Scan artifact store for deserialization risks (.pkl, .joblib files) that may have been replaced.
What systems are affected by CVE-2023-6015?
This vulnerability affects the following AI/ML architecture patterns: MLOps platforms, model registry, training pipelines, experiment tracking systems, model serving, ML CI/CD pipelines.
What is the CVSS score for CVE-2023-6015?
CVE-2023-6015 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.77%.
Technical Details
NVD Description
MLflow allowed arbitrary files to be PUT onto the server.
Exploitation Scenario
Attacker discovers an exposed MLflow instance via Shodan or a public IP scan on port 5000. With a single unauthenticated HTTP PUT request using a path traversal payload in the artifact URI (e.g., ../../app/model.py), they write a malicious Python file to the server filesystem. When the next scheduled training job or CI/CD pipeline loads a 'model' from the artifact store, the malicious file executes with the ML worker's privileges — granting persistent foothold in the ML infrastructure. Alternatively, attacker replaces a legitimate serialized model (.pkl) with a maliciously pickled object that executes arbitrary code upon model.load() calls in any downstream inference service.
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
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-2026-2635 9.8 mlflow: security flaw enables exploitation
Same package: mlflow CVE-2023-2780 9.8 MLflow: path traversal allows arbitrary file read/write
Same package: mlflow CVE-2023-1177 9.8 MLflow: path traversal allows arbitrary file read/write
Same package: mlflow
AI Threat Alert