Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
7DescriptionCVE.org
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.
AnalysisAI
Local privilege escalation to arbitrary code execution in MLflow versions prior to 3.11.0 stems from insecure temporary directory permissions (0o777 and 0o770) created by NFS and model-download helpers. Any local user sharing the filesystem - particularly on Databricks where NFS is enabled by default - can overwrite cloudpickle-serialized model artifacts and gain code execution when another user's process deserializes them via cloudpickle.load(). No public exploit is identified at time of analysis, and the issue is a continuation of CVE-2025-10279 which was only partially fixed.
Technical ContextAI
MLflow is an open-source ML lifecycle platform that stages model artifacts on disk before serving them through pyfunc loaders. The vulnerable helpers get_or_create_nfs_tmp_dir() in mlflow/utils/file_utils.py and _create_model_downloading_tmp_dir() in mlflow/pyfunc/__init__.py explicitly chmod their staging directories to 0o777 (world rwx) and 0o770 (group rwx) respectively so Spark UDF worker processes can read them. This maps to CWE-378 (Creation of Temporary File With Insecure Permissions): because cloudpickle.load() executes arbitrary __reduce__ payloads embedded in a pickle stream, any attacker with write access to the staging directory can substitute a malicious pickle, and the next deserialization by the victim process runs attacker code with the victim's privileges. The upstream fix tightens both paths to 0o750, preserving group read/execute (needed for Spark UDFs) while removing group and world write.
RemediationAI
Vendor-released patch: upgrade to MLflow 3.11.0 or later, which restricts the NFS staging directory and the pyfunc model-downloading temp directory to mode 0o750 (owner rwx, group rx, others none) per commit 1dcbb0c2fbd1f446c328830e601ca13a28219b8a. Where immediate upgrade is not possible, manually run chmod 750 (or stricter, e.g. 700 if Spark UDFs are not in use) against the existing NFS tmp directory and the pyfunc model-downloading tmp directory after MLflow creates them - note that 700 will break Spark UDF workers that run as a different group, while 750 preserves UDF compatibility. As a deployment-level control, dedicate the NFS mount to a single tenant or restrict access to a trusted group via mount options and POSIX ACLs so untrusted local users cannot write into the staging path, and avoid loading models from any directory writable by other principals. Reference the huntr report (https://huntr.com/bounties/648dc30b-76c7-4433-86b8-f43d926fd8d6) and the NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-4137) for advisory tracking.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-30807
GHSA-f2m9-wcf4-cwwx