{"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.56698,"ingestedAt":"2026-07-13T18:57:57.358Z","slug":"CVE-2025-15031","body":"## Overview\n\nA 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.\n\n## Affected packages\n\n- `mlflow < 3.9.0rc0`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `mlflow 3.9.0rc0`","depth":"twilight","depthScore":45,"depthScoreParts":{"impact":44.6,"likelihood":0.2,"exploitation":0,"ransomware":0},"changes":[]}