---
id: CVE-2025-15031
aliases:
  - GHSA-fhff-qmm8-h2fp
  - BIT-mlflow-2025-15031
  - PYSEC-2026-2656
title: Arbitrary file write via tar traversal in mlflow
summary: Arbitrary file write via tar traversal in mlflow
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'
vendor: mlflow
product: mlflow
ecosystem: pip
affected:
  - mlflow < 3.9.0rc0
patched:
  - mlflow 3.9.0rc0
published: '2026-03-19'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:51:00.308511538Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-fhff-qmm8-h2fp'
references:
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2025-15031'
  - url: >-
      https://github.com/mlflow/mlflow/commit/3bf6d81ac4d38654c8ff012dbd0c3e9f17e7e346
  - url: 'https://github.com/mlflow/mlflow'
  - url: >-
      https://github.com/mlflow/mlflow/blob/fe4d9be330426904283401f1d2ed914238b6fc37/mlflow/pyfunc/dbconnect_artifact_cache.py#L140
  - url: 'https://huntr.com/bounties/09856f77-f968-446f-a930-657d126efe4e'
tags:
  - osv
  - pip
epss: 0.00852
epssPercentile: 0.56473
ingestedAt: '2026-07-13T18:57:57.358Z'
---

## Overview

A vulnerability in MLflow's pyfunc extraction process allows for arbitrary file writes due to improper handling of tar archive entries. Specifically, the use of `tarfile.extractall` without path validation enables crafted tar.gz files containing `..` or absolute paths to escape the intended extraction directory. This issue affects the latest version of MLflow and poses a high/critical risk in scenarios involving multi-tenant environments or ingestion of untrusted artifacts, as it can lead to arbitrary file overwrites and potential remote code execution.

## Affected packages

- `mlflow < 3.9.0rc0`

## Remediation

Upgrade to a patched release:

- `mlflow 3.9.0rc0`
