GitHub Advisoryadvisory · PyPI
GHSA-f2m9-wcf4-cwwx MLFlow Creates a Temporary File With Insecure Permissions
HIGH
Official page ↗
- Aliases
- CVE-2026-4137
- Ecosystem
- PyPI
- Packages
- mlflow
- Severity
- High
- CVSS vector
- CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses
- CWE-378
- Reviewed
- 2026-05-29
Affected packages
• PyPI mlflow: >= 1.26.0, < 3.11.0 → fixed in 3.11.0
Description
In mlflow/mlflow versions prior to 3.11.0, the `get_or_create_nfs_tmp_dir()` function in `mlflow/utils/file_utils.py` creates temporary directories with world-writable permissions (0o777), and the `_create_model_downloading_tmp_dir()` function in `mlflow/pyfunc/__init__.py` creates directories with group-writable permissions (0o770). These insecure permissions allow local attackers to tamper with model artifacts, such as cloudpickle-serialized Python objects, and achieve arbitrary code execution when the tampered artifacts are deserialized via `cloudpickle.load()`. This vulnerability is particularly critical in environments with shared NFS mounts, such as Databricks, where NFS is enabled by default. The issue is a continuation of the vulnerability class addressed in CVE-2025-10279, which was only partially fixed.
Related
Alias · CVE (1)
- CVE-2026-4137 In mlflow/mlflow versions prior to 3.11.0, the `get_or_create_nfs_tmp_dir()` function in `mlflow/utils/file_utils.py` creates temporary… vulnerability
Weakness · CWE (1)
- CWE-378 Creation of Temporary File With Insecure Permissions weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2026-4137 advisory
- https://github.com/mlflow/mlflow/commit/1dcbb0c2fbd1f446c328830e601ca13a28219b8a web
- https://github.com/mlflow/mlflow/commit/bd8854fb2b4b168a4384ebddc6c4a0b5d56aff01 web
- https://github.com/advisories/GHSA-4x5p-f36r-mxxr advisory
- https://github.com/mlflow/mlflow package
- https://github.com/pypa/advisory-database/tree/main/vulns/mlflow/PYSEC-2026-2655.yaml web
- https://huntr.com/bounties/648dc30b-76c7-4433-86b8-f43d926fd8d6 web