---
id: CVE-2026-4137
aliases:
  - GHSA-f2m9-wcf4-cwwx
  - BIT-mlflow-2026-4137
  - PYSEC-2026-2655
title: 'MLFlow Creates a Temporary File With Insecure Permissions '
summary: 'MLFlow Creates a Temporary File With Insecure Permissions '
severity: high
cvss: 7
cvssVector: 'CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'
vendor: mlflow
product: mlflow
ecosystem: pip
affected:
  - mlflow < 3.11.0
patched:
  - mlflow 3.11.0
published: '2026-05-18'
updated: '2026-07-13'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-f2m9-wcf4-cwwx'
references:
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-4137'
  - url: >-
      https://github.com/mlflow/mlflow/commit/1dcbb0c2fbd1f446c328830e601ca13a28219b8a
  - url: 'https://github.com/advisories/GHSA-4x5p-f36r-mxxr'
  - url: 'https://github.com/mlflow/mlflow'
  - url: 'https://huntr.com/bounties/648dc30b-76c7-4433-86b8-f43d926fd8d6'
tags:
  - osv
  - pip
epss: 0.00193
epssPercentile: 0.09256
ingestedAt: '2026-07-13T18:57:57.008Z'
---

## Overview

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.

## Affected packages

- `mlflow < 3.11.0`

## Remediation

Upgrade to a patched release:

- `mlflow 3.11.0`
