CVE-2024-1593

7.5 HIGH

📋 TL;DR

A path traversal vulnerability in MLflow allows attackers to use ';' characters in URL parameters to access unauthorized files or directories. This affects MLflow deployments where the vulnerable code handles URL parameters, potentially exposing sensitive data or enabling server compromise.

💻 Affected Systems

Products:
  • MLflow
Versions: Versions prior to the fix (specific version not provided in CVE description)
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects MLflow deployments using the vulnerable URL parameter handling functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise through arbitrary file read/write leading to remote code execution.

🟠

Likely Case

Unauthorized access to sensitive configuration files, source code, or credentials stored on the server.

🟢

If Mitigated

Limited impact if proper input validation and file system permissions restrict access to critical areas.

🌐 Internet-Facing: HIGH - Internet-facing MLflow instances are directly exploitable without authentication.
🏢 Internal Only: MEDIUM - Internal instances still vulnerable but require network access.

🎯 Exploit Status

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

Exploitation requires crafting URLs with ';' characters in parameters to perform path traversal.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check MLflow GitHub repository for latest security patches

Vendor Advisory: https://github.com/mlflow/mlflow/security/advisories

Restart Required: Yes

Instructions:

1. Update MLflow to latest patched version. 2. Restart MLflow services. 3. Verify the fix by testing with malicious URLs.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement middleware or proxy to filter URLs containing ';' characters in parameters

# Example for nginx: location / { if ($args ~* ";") { return 403; } }

File System Restrictions

linux

Configure MLflow to run with minimal file system permissions

# Run as non-root user
# chroot or containerize MLflow deployment

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block URLs with ';' characters in parameters
  • Restrict network access to MLflow instances using firewall rules

🔍 How to Verify

Check if Vulnerable:

Test by accessing MLflow with URLs containing ';../' sequences in parameters and observing if unauthorized file access occurs.

Check Version:

mlflow --version

Verify Fix Applied:

Attempt the same test after patching; successful requests should be blocked or return appropriate errors.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests with ';' characters in URL parameters
  • Unusual file access patterns from MLflow processes

Network Indicators:

  • HTTP traffic to MLflow with encoded ';' characters (%3B) in URLs

SIEM Query:

source="mlflow.log" AND (url="*;*" OR url="*%3B*")

🔗 References

📤 Share & Export