mlflow

Open source platform for the machine learning lifecycle

Version: 1.11.0 registry icon
Safety score
-1025
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security Risks of Known Vulnerabilities
CVE-2024-0520
CWE-22
Threat level: HIGH | CVSS score: 8.8

A vulnerability in mlflow/mlflow version 8.2.1 allows for remote code execution due to improper neutralization of special elements used in an OS command ('Command Injection') within the mlflow.data.http_dataset_source.py module. Specifically, when loading a dataset from a source URL with an HTTP scheme, the filename extracted from the Content-Disposition header or the URL path is used to generate the final file path without proper sanitization. This flaw enables an attacker to control the file path fully by utilizing path traversal or absolute path techniques, such as '../../tmp/poc.txt' or '/tmp/poc.txt', leading to arbitrary file write. Exploiting this vulnerability could allow a malicious user to execute commands on the vulnerable machine, potentially gaining access to data and model information. The issue is fixed in version 2.9.0.



CVE-2023-1176
CWE-36
Threat level: LOW | CVSS score: 3.3

Absolute Path Traversal in GitHub repository mlflow/mlflow prior to 2.2.2.



CVE-2023-2356
CWE-23
Threat level: HIGH | CVSS score: 7.5

Relative Path Traversal in GitHub repository mlflow/mlflow prior to 2.3.1.



CVE-2023-3765
CWE-36
Threat level: CRITICAL | CVSS score: 10.0

Absolute Path Traversal in GitHub repository mlflow/mlflow prior to 2.5.0.



CVE-2025-52967
CWE-918
Threat level: MEDIUM | CVSS score: 5

gateway_proxy_handler in MLflow before 3.1.0 lacks gateway_path validation.



CVE-2024-1483
CWE-22
Threat level: HIGH | CVSS score: 7.5

A path traversal vulnerability exists in mlflow/mlflow version 2.9.2, allowing attackers to access arbitrary files on the server. By crafting a series of HTTP POST requests with specially crafted 'artifact_location' and 'source' parameters, using a local URI with '#' instead of '?', an attacker can traverse the server's directory structure. The issue occurs due to insufficient validation of user-supplied input in the server's handlers.



CVE-2025-1474
CWE-521
Threat level: MEDIUM | CVSS score: 5.5

In mlflow/mlflow version 2.18, an admin is able to create a new user account without setting a password. This vulnerability could lead to security risks, as accounts without passwords may be susceptible to unauthorized access. Additionally, this issue violates best practices for secure user account management. The issue is fixed in version 2.19.0.



CVE-2024-37053
CWE-502
Threat level: HIGH | CVSS score: 8.8

Deserialization of untrusted data can occur in versions of the MLflow platform running version 1.1.0 or newer, enabling a maliciously uploaded scikit-learn model to run arbitrary code on an end user’s system when interacted with.



CVE-2024-37061
CWE-94
Threat level: HIGH | CVSS score: 8.8

Remote Code Execution can occur in versions of the MLflow platform running version 1.11.0 or newer, enabling a maliciously crafted MLproject to execute arbitrary code on an end user’s system when run.



CVE-2022-0736
Threat level: HIGH | CVSS score: 7.5

Insecure Temporary File in GitHub repository mlflow/mlflow prior to 1.23.1.



CVE-2023-6909
CWE-29
Threat level: HIGH | CVSS score: 7.5

Path Traversal: '..\filename' in GitHub repository mlflow/mlflow prior to 2.9.2.



CVE-2023-6974
CWE-918
Threat level: CRITICAL | CVSS score: 9.8

A malicious user could use this issue to access internal HTTP(s) servers and in the worst case (ie: aws instance) it could be abuse to get a remote code execution on the victim machine.



CVE-2023-30172
CWE-22
Threat level: HIGH | CVSS score: 7.5

A directory traversal vulnerability in the /get-artifact API method of the mlflow platform up to v2.0.1 allows attackers to read arbitrary files on the server via the path parameter.



CVE-2025-0453
CWE-400
Threat level: HIGH | CVSS score: 7.5

In mlflow/mlflow version 2.17.2, the /graphql endpoint is vulnerable to a denial of service attack. An attacker can create large batches of queries that repeatedly request all runs from a given experiment. This can tie up all the workers allocated by MLFlow, rendering the application unable to respond to other requests. This vulnerability is due to uncontrolled resource consumption.



CVE-2024-27133
CWE-79
Threat level: CRITICAL | CVSS score: 9.6

Insufficient sanitization in MLflow leads to XSS when running a recipe that uses an untrusted dataset. This issue leads to a client-side RCE when running the recipe in Jupyter Notebook. The vulnerability stems from lack of sanitization over dataset table fields.



CVE-2024-27132
CWE-79
Threat level: CRITICAL | CVSS score: 9.6

Insufficient sanitization in MLflow leads to XSS when running an untrusted recipe.

This issue leads to a client-side RCE when running an untrusted recipe in Jupyter Notebook.

The vulnerability stems from lack of sanitization over template variables.



CVE-2023-4033
CWE-78
Threat level: HIGH | CVSS score: 7.8

OS Command Injection in GitHub repository mlflow/mlflow prior to 2.6.0.



CVE-2023-1177
CWE-29
Threat level: CRITICAL | CVSS score: 9.8

Path Traversal: '..\filename' in GitHub repository mlflow/mlflow prior to 2.2.1.



CVE-2023-6568
CWE-79
Threat level: MEDIUM | CVSS score: 6.1

A reflected Cross-Site Scripting (XSS) vulnerability exists in the mlflow/mlflow repository, specifically within the handling of the Content-Type header in POST requests. An attacker can inject malicious JavaScript code into the Content-Type header, which is then improperly reflected back to the user without adequate sanitization or escaping, leading to arbitrary JavaScript execution in the context of the victim's browser. The vulnerability is present in the mlflow/server/auth/init.py file, where the user-supplied Content-Type header is directly injected into a Python formatted string and returned to the user, facilitating the XSS attack.



CVE-2024-1594
CWE-22
Threat level: HIGH | CVSS score: 7.5

A path traversal vulnerability exists in the mlflow/mlflow repository, specifically within the handling of the artifact_location parameter when creating an experiment. Attackers can exploit this vulnerability by using a fragment component # in the artifact location URI to read arbitrary files on the server in the context of the server's process. This issue is similar to CVE-2023-6909 but utilizes a different component of the URI to achieve the same effect.



CVE-2023-6831
CWE-22
Threat level: HIGH | CVSS score: 8.1

Path Traversal: '..\filename' in GitHub repository mlflow/mlflow prior to 2.9.2.



CVE-2023-2780
CWE-29
Threat level: CRITICAL | CVSS score: 9.8

Path Traversal: '..\filename' in GitHub repository mlflow/mlflow prior to 2.3.1.



CVE-2024-3573
CWE-22
Threat level: HIGH | CVSS score: 9.3

mlflow/mlflow is vulnerable to Local File Inclusion (LFI) due to improper parsing of URIs, allowing attackers to bypass checks and read arbitrary files on the system. The issue arises from the 'is_local_uri' function's failure to properly handle URIs with empty or 'file' schemes, leading to the misclassification of URIs as non-local. Attackers can exploit this by crafting malicious model versions with specially crafted 'source' parameters, enabling the reading of sensitive files within at least two directory levels from the server's root.



CVE-2023-43472
Threat level: HIGH | CVSS score: 7.5

An issue in MLFlow versions 2.8.1 and before allows a remote attacker to obtain sensitive information via a crafted request to REST API.



CVE-2023-6015
CWE-22
Threat level: HIGH | CVSS score: 7.5

MLflow allowed arbitrary files to be PUT onto the server.



CVE-2023-6977
CWE-29
Threat level: HIGH | CVSS score: 7.5

This vulnerability enables malicious users to read sensitive files on the server.



CVE-2024-37059
CWE-502
Threat level: HIGH | CVSS score: 8.8

Deserialization of untrusted data can occur in versions of the MLflow platform running version 0.5.0 or newer, enabling a maliciously uploaded PyTorch model to run arbitrary code on an end user’s system when interacted with.



CVE-2024-1560
CWE-22
Threat level: HIGH | CVSS score: 8.1

A path traversal vulnerability exists in the mlflow/mlflow repository, specifically within the artifact deletion functionality. Attackers can bypass path validation by exploiting the double decoding process in the _delete_artifact_mlflow_artifacts handler and local_file_uri_to_path function, allowing for the deletion of arbitrary directories on the server's filesystem. This vulnerability is due to an extra unquote operation in the delete_artifacts function of local_artifact_repo.py, which fails to properly sanitize user-supplied paths. The issue is present up to version 2.9.2, despite attempts to fix a similar issue in CVE-2023-6831.



CVE-2023-6753
CWE-22
Threat level: HIGH | CVSS score: 8.8

Path Traversal in GitHub repository mlflow/mlflow prior to 2.9.2.



CVE-2023-6940
CWE-77
Threat level: HIGH | CVSS score: 8.8

with only one user interaction(download a malicious config), attackers can gain full command execution on the victim system.



CVE-2024-37052
CWE-502
Threat level: HIGH | CVSS score: 8.8

Deserialization of untrusted data can occur in versions of the MLflow platform running version 1.1.0 or newer, enabling a maliciously uploaded scikit-learn model to run arbitrary code on an end user’s system when interacted with.



CVE-2024-1558
CWE-22
Threat level: HIGH | CVSS score: 7.5

A path traversal vulnerability exists in the _create_model_version() function within server/handlers.py of the mlflow/mlflow repository, due to improper validation of the source parameter. Attackers can exploit this vulnerability by crafting a source parameter that bypasses the _validate_non_local_source_contains_relative_paths(source) function's checks, allowing for arbitrary file read access on the server. The issue arises from the handling of unquoted URL characters and the subsequent misuse of the original source value for model version creation, leading to the exposure of sensitive files when interacting with the /model-versions/get-artifact handler.



CVE-2024-3848
CWE-22
Threat level: HIGH | CVSS score: 7.5

A path traversal vulnerability exists in mlflow/mlflow version 2.11.0, identified as a bypass for the previously addressed CVE-2023-6909. The vulnerability arises from the application's handling of artifact URLs, where a '#' character can be used to insert a path into the fragment, effectively skipping validation. This allows an attacker to construct a URL that, when processed, ignores the protocol scheme and uses the provided path for filesystem access. As a result, an attacker can read arbitrary files, including sensitive information such as SSH and cloud keys, by exploiting the way the application converts the URL into a filesystem path. The issue stems from insufficient validation of the fragment portion of the URL, leading to arbitrary file read through path traversal.



CVE-2023-6975
CWE-29
Threat level: CRITICAL | CVSS score: 9.8

A malicious user could use this issue to get command execution on the vulnerable machine and get access to data & models information.



CVE-2023-6709
CWE-1336
Threat level: HIGH | CVSS score: 8.8

Improper Neutralization of Special Elements Used in a Template Engine in GitHub repository mlflow/mlflow prior to 2.9.2.



CVE-2024-4263
Threat level: MEDIUM | CVSS score: 5.4

A broken access control vulnerability exists in mlflow/mlflow versions before 2.10.1, where low privilege users with only EDIT permissions on an experiment can delete any artifacts. This issue arises due to the lack of proper validation for DELETE requests by users with EDIT permissions, allowing them to perform unauthorized deletions of artifacts. The vulnerability specifically affects the handling of artifact deletions within the application, as demonstrated by the ability of a low privilege user to delete a directory inside an artifact using a DELETE request, despite the official documentation stating that users with EDIT permission can only read and update artifacts, not delete them.



CVE-2024-1593
CWE-22
Threat level: HIGH | CVSS score: 7.5

A path traversal vulnerability exists in the mlflow/mlflow repository due to improper handling of URL parameters. By smuggling path traversal sequences using the ';' character in URLs, attackers can manipulate the 'params' portion of the URL to gain unauthorized access to files or directories. This vulnerability allows for arbitrary data smuggling into the 'params' part of the URL, enabling attacks similar to those described in previous reports but utilizing the ';' character for parameter smuggling. Successful exploitation could lead to unauthorized information disclosure or server compromise.



CVE-2024-6838
CWE-400
Threat level: MEDIUM | CVSS score: 5.3

In mlflow/mlflow version v2.13.2, a vulnerability exists that allows the creation or renaming of an experiment with a large number of integers in its name due to the lack of a limit on the experiment name. This can cause the MLflow UI panel to become unresponsive, leading to a potential denial of service. Additionally, there is no character limit in the artifact_location parameter while creating the experiment.



CVE-2024-27134
CWE-276
Threat level: HIGH | CVSS score: 7.0

Excessive directory permissions in MLflow leads to local privilege escalation when using spark_udf. This behavior can be exploited by a local attacker to gain elevated permissions by using a ToCToU attack. The issue is only relevant when the spark_udf() MLflow API is called.



CVE-2024-8859
CWE-22
Threat level: HIGH | CVSS score: 8

A path traversal vulnerability exists in mlflow/mlflow version 2.15.1. When users configure and use the dbfs service, concatenating the URL directly into the file protocol results in an arbitrary file read vulnerability. This issue occurs because only the path part of the URL is checked, while parts such as query and parameters are not handled. The vulnerability is triggered if the user has configured the dbfs service, and during usage, the service is mounted to a local directory.



CVE-2024-2928
CWE-22
Threat level: HIGH | CVSS score: 7.5

A Local File Inclusion (LFI) vulnerability was identified in mlflow/mlflow, specifically in version 2.9.2, which was fixed in version 2.11.3. This vulnerability arises from the application's failure to properly validate URI fragments for directory traversal sequences such as '../'. An attacker can exploit this flaw by manipulating the fragment part of the URI to read arbitrary files on the local file system, including sensitive files like '/etc/passwd'. The vulnerability is a bypass to a previous patch that only addressed similar manipulation within the URI's query string, highlighting the need for comprehensive validation of all parts of a URI to prevent LFI attacks.



CVE-2024-37054
CWE-502
Threat level: HIGH | CVSS score: 8.8

Deserialization of untrusted data can occur in versions of the MLflow platform running version 0.9.0 or newer, enabling a maliciously uploaded PyFunc model to run arbitrary code on an end user’s system when interacted with.



CVE-2023-6976
CWE-434
Threat level: HIGH | CVSS score: 8.8

This vulnerability is capable of writing arbitrary files into arbitrary locations on the remote filesystem in the context of the server process.



Please note that this component is affected by 4 other vulnerabilities
2 Critical  |  0 High  |  2 Medium  |  0 Low  |  2 Suggest

All versions of this component are vulnerable.

Scan your application codebase with Meterian to see all known vulnerabilities in your open source software dependencies.


Stability

Stay updated with the latest patches and releases. Plan your sofware desisgn. Avoid common known vulnerabilities fixed by the open source community

Latest patch release:   --

Latest minor release:   1.30.1

Latest major release:   3.1.1

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

Apache-2.0   -   Apache License 2.0

Not a wildcard

Not proprietary

OSI Compliant