CVE-2023-6976

8.8 HIGH

📋 TL;DR

This vulnerability in MLflow allows attackers to write arbitrary files to arbitrary locations on the server filesystem, potentially leading to remote code execution. It affects MLflow deployments with the vulnerable component enabled. The vulnerability is exploitable via the MLflow API.

💻 Affected Systems

Products:
  • MLflow
Versions: Versions before 2.9.2
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects MLflow deployments with the vulnerable API endpoints accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise through remote code execution, data exfiltration, and lateral movement within the network.

🟠

Likely Case

Arbitrary file write leading to web shell deployment, configuration modification, or denial of service.

🟢

If Mitigated

Limited impact if proper network segmentation, least privilege, and file system permissions are enforced.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires API access but is straightforward once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.9.2

Vendor Advisory: https://github.com/mlflow/mlflow/commit/5044878da0c1851ccfdd5c0a867157ed9a502fbc

Restart Required: Yes

Instructions:

1. Update MLflow to version 2.9.2 or later using pip: 'pip install --upgrade mlflow>=2.9.2'. 2. Restart all MLflow services. 3. Verify the update with 'mlflow --version'.

🔧 Temporary Workarounds

Restrict API Access

all

Limit network access to MLflow API endpoints to trusted IPs only.

Use firewall rules to restrict access to MLflow ports (default 5000)

Disable Vulnerable Endpoints

all

If not needed, disable the specific API endpoints that allow file uploads.

Configure MLflow to disable file upload endpoints in deployment settings

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate MLflow instances
  • Apply file system permissions to restrict write access to server directories

🔍 How to Verify

Check if Vulnerable:

Check MLflow version: if version is below 2.9.2, the system is vulnerable.

Check Version:

mlflow --version

Verify Fix Applied:

Confirm MLflow version is 2.9.2 or higher and test that file upload endpoints now validate paths properly.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file write operations in MLflow logs
  • API requests attempting path traversal in file uploads

Network Indicators:

  • HTTP requests to MLflow API with suspicious file paths in parameters

SIEM Query:

source="mlflow.log" AND ("file_upload" OR "path_traversal")

🔗 References

📤 Share & Export