CVE-2023-4033: MLflow: OS command injection enables local code execution
GHSA-ffw3-6378-cqgp HIGH PoC AVAILABLE CISA: ATTENDAny low-privileged local user on an MLflow server running < 2.6.0 can execute arbitrary OS commands — no special skills required. Upgrade to 2.6.0 immediately; MLflow nodes often sit adjacent to training data, model artifacts, and cloud credentials, making lateral movement trivial post-exploitation. Audit who has shell access to your MLflow hosts and ensure the service does not run as root.
Risk Assessment
CVSS 7.8 with low complexity and no user interaction makes this straightforward to exploit for anyone with local shell access. While AV:L limits remote exploitation, MLflow is routinely deployed on shared infrastructure (Kubernetes worker nodes, multi-tenant GPU clusters, Jupyter environments) where 'local access' is broadly distributed among data scientists and engineers. AI/ML environments historically have weaker endpoint hardening than production application servers, increasing the real-world exposure significantly. EPSS of 0.002 suggests limited in-the-wild exploitation to date, but the low barrier makes opportunistic abuse realistic.
Affected Systems
Severity & Risk
Attack Surface
Recommended Action
7 steps-
Patch immediately
Upgrade MLflow to >= 2.6.0 (patch commit: 6dde937). Verify with
pip show mlflow. -
Least privilege
Ensure MLflow tracking server runs as a dedicated non-root service account with minimal filesystem permissions.
-
Access control
Restrict local shell access to MLflow hosts; enforce SSH key-based auth with MFA for jump hosts.
-
Secrets hygiene
Remove cloud credentials and API keys from MLflow process environment variables; use IAM instance roles or secrets managers instead.
-
Network isolation
MLflow servers should not be internet-facing; place behind internal VPN or service mesh.
-
Detection
Alert on anomalous child processes spawned by the MLflow process (e.g.,
bash,sh,curl,wgetas subprocesses of the MLflow PID). -
Audit
Review MLflow server logs for unexpected experiment names or artifact paths containing shell metacharacters.
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-4033?
Any low-privileged local user on an MLflow server running < 2.6.0 can execute arbitrary OS commands — no special skills required. Upgrade to 2.6.0 immediately; MLflow nodes often sit adjacent to training data, model artifacts, and cloud credentials, making lateral movement trivial post-exploitation. Audit who has shell access to your MLflow hosts and ensure the service does not run as root.
Is CVE-2023-4033 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2023-4033, increasing the risk of exploitation.
How to fix CVE-2023-4033?
1. **Patch immediately**: Upgrade MLflow to >= 2.6.0 (patch commit: 6dde937). Verify with `pip show mlflow`. 2. **Least privilege**: Ensure MLflow tracking server runs as a dedicated non-root service account with minimal filesystem permissions. 3. **Access control**: Restrict local shell access to MLflow hosts; enforce SSH key-based auth with MFA for jump hosts. 4. **Secrets hygiene**: Remove cloud credentials and API keys from MLflow process environment variables; use IAM instance roles or secrets managers instead. 5. **Network isolation**: MLflow servers should not be internet-facing; place behind internal VPN or service mesh. 6. **Detection**: Alert on anomalous child processes spawned by the MLflow process (e.g., `bash`, `sh`, `curl`, `wget` as subprocesses of the MLflow PID). 7. **Audit**: Review MLflow server logs for unexpected experiment names or artifact paths containing shell metacharacters.
What systems are affected by CVE-2023-4033?
This vulnerability affects the following AI/ML architecture patterns: ML experiment tracking platforms, model training pipelines, model registry, MLOps CI/CD pipelines, shared GPU training clusters.
What is the CVSS score for CVE-2023-4033?
CVE-2023-4033 has a CVSS v3.1 base score of 7.8 (HIGH). The EPSS exploitation probability is 0.18%.
Technical Details
NVD Description
OS Command Injection in GitHub repository mlflow/mlflow prior to 2.6.0.
Exploitation Scenario
An attacker (e.g., a malicious insider, compromised data scientist account, or attacker who pivoted from a Jupyter notebook) logs into a shared ML training server. They identify the MLflow tracking server is running a vulnerable version. They craft a malicious input — such as a specially constructed experiment name, artifact path, or parameter value containing shell metacharacters — that triggers unsanitized OS command execution. Within seconds they spawn a reverse shell (AML.T0072) running as the mlflow service user, then enumerate environment variables to harvest S3 credentials, access the model registry to exfiltrate proprietary model weights, and potentially pivot to the training data lake. The entire attack chain requires only basic Linux knowledge and takes under five minutes.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H References
- github.com/advisories/GHSA-ffw3-6378-cqgp
- github.com/pypa/advisory-database/tree/main/vulns/mlflow/PYSEC-2023-280.yaml
- nvd.nist.gov/vuln/detail/CVE-2023-4033
- github.com/mlflow/mlflow/commit/6dde93758d42455cb90ef324407919ed67668b9b Patch
- huntr.dev/bounties/5312d6f8-67a5-4607-bd47-5e19966fa321 Permissions Required
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