CVE-2024-1558
Path Traversal vulnerability in mlflow (PyPI)
What is CVE-2024-1558 About?
This vulnerability is a path traversal flaw in MLflow's `_create_model_version()` function due to insufficient validation of the `source` parameter. Attackers can craft a `source` parameter to bypass checks, leading to arbitrary file read access on the server. Exploiting this could expose sensitive information, making it a significant risk with medium exploitation complexity.
Affected Software
Technical Details
The vulnerability exists in the _create_model_version() function within server/handlers.py in the mlflow/mlflow repository. It stems from improper validation of the source parameter. The _validate_non_local_source_contains_relative_paths(source) function, intended to prevent path traversal, can be bypassed. Attackers can craft a source parameter that includes path traversal sequences, potentially leveraging unquoted URL characters or other encoding tricks. When the source value is subsequently used by the /model-versions/get-artifact handler, the misleadingly validated path is misinterpreted, allowing the attacker to read arbitrary files outside the intended directory structure on the server.
What is the Impact of CVE-2024-1558?
Successful exploitation may allow attackers to read arbitrary files on the server, including sensitive configuration files, source code, or other confidential data.
What is the Exploitability of CVE-2024-1558?
Exploitation involves crafting a malicious source parameter to the _create_model_version() function. The complexity is medium, as it requires bypassing existing path validation checks, possibly through creative URL encoding or understanding how unquoted URL characters are handled. No specific authentication beyond typical user access to the MLflow API is mentioned, nor are elevated privileges required. The attack is remote, as it targets a web application endpoint. Special conditions include the interaction between the _create_model_version() function and the /model-versions/get-artifact handler. The likelihood of exploitation increases if an attacker can freely manipulate the 'source' parameter during model version creation requests.
What are the Known Public Exploits?
| PoC Author | Link | Commentary |
|---|---|---|
| No known exploits | ||
What are the Available Fixes for CVE-2024-1558?
Available Upgrade Options
- mlflow
- <2.12.1 → Upgrade to 2.12.1
Struggling with dependency upgrades?
See how Resolved Security's drop-in replacements make it simple.
Book a demoAdditional Resources
What are Similar Vulnerabilities to CVE-2024-1558?
Similar Vulnerabilities: CVE-2023-4966 , CVE-2022-29007 , CVE-2021-41773 , CVE-2020-14930 , CVE-2019-17482
