Cloudanix VulnDB

CVE-2025-4517

Critical · 9.4

CVSS

9.4

EPSS

1.5%

Published

Jun 3, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in Python's handling of tar files could let attackers write files anywhere on your computer when processing untrusted archives, risking system damage or takeover.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Data Tampering
Component
Library
Class
Path Traversal
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability permits writing files to arbitrary locations outside the intended extraction directory when using TarFile.extractall() or extract() with filter='data' or 'tar' on untrusted tar archives.

Why it matters to the business

Attackers could overwrite critical system or application files, potentially leading to system compromise, data loss, or unauthorized code execution in environments processing untrusted tar archives; high prevalence of Python increases exposure across many systems.

How an attack unfolds

An attacker creates a tar archive containing files with paths that traverse outside the extraction directory. When a vulnerable Python application extracts this archive using the specified filters, the files are written to unintended locations on the filesystem.

How to fix it

Update to a version of CPython that includes commit 19de092debb3d7e832e5672cc2f7b788d35951da or later. Avoid using the 'data' or 'tar' filters with untrusted archives; prefer safer filters or manual validation.

How to confirm the fix worked

Verify the Python version or source includes the fix commit. Test extraction of sample malicious tar archives to confirm files are not written outside the directory.

Typical attack path

  1. Craft malicious tar archive with path traversal entries
  2. Deliver archive to target application
  3. Trigger extraction using TarFile.extractall() or extract() with filter='data' or 'tar'
  4. Achieve arbitrary file writes

How to detect it

Review application logs for tarfile extraction operations on untrusted inputs. Look for file system changes outside expected directories during extraction processes. Audit code paths handling tar archives.

What your security team should do

  • Prioritize updating Python environments to the patched commit
  • Review code using tarfile extraction for use of vulnerable filters
  • Implement input validation or sandboxing for tar extraction
  • Monitor for unexpected file writes during archive processing

The record

Allows arbitrary filesystem writes outside the extraction directory during extraction with filter="data". You are affected by this vulnerability if using the tarfile module to extract untrusted tar archives using TarFile.extractall() or TarFile.extract() using the filter= parameter with a value of "data" or "tar". See the tarfile extraction filters documentation https://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter  for more information. Note that for Python 3.14 or later the default value of filter= changed from "no filtering" to `"data", so if you are relying on this new default behavior then your usage is also affected. Note that none of these vulnerabilities significantly affect the installation of source distributions which are tar archives as source distributions already allow arbitrary code execution during the build process. However when evaluating source distributions it's important to avoid installing source distributions with suspicious links.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 python-unversioned-command 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3-debug 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3-devel 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3-idle 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3-libs 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3-test 0 3.12.9-2.el10_0.2
AlmaLinux:10 python3-tkinter 0 3.12.9-2.el10_0.2
AlmaLinux:8 platform-python 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 platform-python-debug 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 platform-python-devel 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 python3-idle 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 python3-libs 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 python3-test 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 python3-tkinter 0 3.6.8-70.el8_10.alma.1
AlmaLinux:8 python3.11 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-debug 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-devel 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-idle 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-libs 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-rpm-macros 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-test 0 3.11.13-1.el8_10
AlmaLinux:8 python3.11-tkinter 0 3.11.13-1.el8_10
AlmaLinux:8 python3.12 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-debug 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-devel 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-idle 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-libs 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-rpm-macros 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-test 0 3.12.11-1.el8_10
AlmaLinux:8 python3.12-tkinter 0 3.12.11-1.el8_10
AlmaLinux:8 python39 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-Cython 0 0.29.21-5.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-Cython 0 0.29.21-5.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-PyMySQL 0 0.10.1-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-attrs 0 20.3.0-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-cffi 0 1.14.3-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-cffi 0 1.14.3-2.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-chardet 0 3.0.4-19.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-cryptography 0 3.3.1-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-debug 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-devel 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-idle 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-idna 0 2.10-4.module_el8.10.0+3849+a48d89aa
AlmaLinux:8 python39-iniconfig 0 1.1.1-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-libs 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-lxml 0 4.6.5-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-lxml 0 4.6.5-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-mod_wsgi 0 4.7.1-7.module_el8.10.0+3989+a618fe15.1
AlmaLinux:8 python39-more-itertools 0 8.5.0-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy 0 1.19.4-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy 0 1.19.4-3.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-numpy-doc 0 1.19.4-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy-f2py 0 1.19.4-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy-f2py 0 1.19.4-3.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-packaging 0 20.4-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pip 0 20.2.4-9.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-pip-wheel 0 20.2.4-9.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-pluggy 0 0.13.1-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-ply 0 3.11-10.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-psutil 0 5.8.0-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-psutil 0 5.8.0-4.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-psycopg2 0 2.8.6-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-psycopg2-doc 0 2.8.6-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-psycopg2-tests 0 2.8.6-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-py 0 1.10.0-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pybind11 0 2.7.1-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pybind11 0 2.7.1-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-pybind11-devel 0 2.7.1-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pybind11-devel 0 2.7.1-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-pycparser 0 2.20-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pyparsing 0 2.4.7-5.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pysocks 0 1.7.1-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pytest 0 6.0.2-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pyyaml 0 5.4.1-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pyyaml 0 5.4.1-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-requests 0 2.25.0-3.module_el8.9.0+3634+fb2a896c
AlmaLinux:8 python39-rpm-macros 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-scipy 0 1.5.4-5.module_el8.9.0+3634+fb2a896c
AlmaLinux:8 python39-setuptools 0 50.3.2-7.module_el8.10.0+4040+9207bbc0
AlmaLinux:8 python39-setuptools-wheel 0 50.3.2-7.module_el8.10.0+4040+9207bbc0
AlmaLinux:8 python39-six 0 1.15.0-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-test 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-tkinter 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-toml 0 0.10.1-5.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-urllib3 0 1.25.10-5.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-wcwidth 0 0.2.5-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-wheel 0 1:0.35.1-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-wheel-wheel 0 1:0.35.1-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:9 python-unversioned-command 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3-debug 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3-devel 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3-idle 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3-libs 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3-test 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3-tkinter 0 3.9.21-2.el9_6.1
AlmaLinux:9 python3.11 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.11-debug 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.11-devel 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.11-idle 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.11-libs 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.11-test 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.11-tkinter 0 3.11.11-2.el9_6.1
AlmaLinux:9 python3.12 0 3.12.9-1.el9_6.1
AlmaLinux:9 python3.12-debug 0 3.12.9-1.el9_6.1
AlmaLinux:9 python3.12-devel 0 3.12.9-1.el9_6.1
AlmaLinux:9 python3.12-idle 0 3.12.9-1.el9_6.1
AlmaLinux:9 python3.12-libs 0 3.12.9-1.el9_6.1
AlmaLinux:9 python3.12-test 0 3.12.9-1.el9_6.1
AlmaLinux:9 python3.12-tkinter 0 3.12.9-1.el9_6.1
Alpine:v3.19 python3 0 3.11.13-r0
Alpine:v3.20 python3 0 3.12.11-r0
Alpine:v3.21 python3 0 3.12.11-r0
Alpine:v3.22 python3 0 3.12.11-r0
Bitnami libpython 0 3.9.23
Bitnami python 0 3.9.23
Bitnami python-min 0 3.9.23
Chainguard python-3.13 0 3.13.4-r0
Chainguard python-3.13-base 0 3.13.4-r0
Chainguard python-3.13-base-dev 0 3.13.4-r0
Chainguard python-3.13-dev 0 3.13.4-r0
Chainguard python-3.13-doc 0 3.13.4-r0
Chainguard python-3.13-privileged-netbindservice 0 3.13.4-r0
Chainguard python-3.13-tk 0 3.13.4-r0
Debian:11 jython 0 No fix
Debian:11 python2.7 0 No fix
Debian:11 python3.9 0 No fix
Debian:12 jython 0 No fix
Debian:12 pypy3 0 No fix
Debian:12 python3.11 0 No fix
Debian:13 jython 0 No fix
Debian:13 pypy3 0 No fix
Debian:13 python3.13 0 No fix
Debian:14 pypy3 0 No fix
Debian:14 python3.13 0 3.13.4-1
Mageia:9 python3 0 3.10.18-1.4.mga9
SUSE:Enterprise Storage 7.1 python3 0 3.6.15-150300.10.97.2
SUSE:Enterprise Storage 7.1 python3-core 0 3.6.15-150300.10.97.1
SUSE:Enterprise Storage 7.1 python39 0 3.9.23-150300.4.75.1
SUSE:Enterprise Storage 7.1 python39-core 0 3.9.23-150300.4.75.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python39 0 3.9.23-150300.4.75.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS python39-core 0 3.9.23-150300.4.75.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python310 0 3.10.18-150400.4.82.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python310-core 0 3.10.18-150400.4.82.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python311 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python311-core 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python311-documentation 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python310 0 3.10.18-150400.4.82.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python310-core 0 3.10.18-150400.4.82.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python311 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python311-core 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python311-documentation 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python311 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python311-core 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python311-documentation 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python311 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python311-core 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python311-documentation 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise Micro 5.2 python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Micro 5.2 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Micro 5.3 python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Micro 5.3 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Micro 5.4 python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Micro 5.4 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Micro 5.5 python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Micro 5.5 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 python311-core 0 3.11.13-150600.3.30.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Module for Basesystem 15 SP7 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 python311-core 0 3.11.13-150600.3.30.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP4 python311 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP4 python311-core 0 3.11.13-150400.9.60.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python311 0 3.11.13-150600.3.30.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python311-core 0 3.11.13-150600.3.30.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python312 0 3.12.11-150600.3.30.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python312-core 0 3.12.11-150600.3.30.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python311 0 3.11.13-150600.3.30.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python311-core 0 3.11.13-150600.3.30.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python313 0 3.13.5-150700.4.11.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python313-core 0 3.13.5-150700.4.11.1
SUSE:Linux Enterprise Server 12 SP5-LTSS python36 0 3.6.15-84.1
SUSE:Linux Enterprise Server 12 SP5-LTSS python36-core 0 3.6.15-84.1
SUSE:Linux Enterprise Server 15 SP3-LTSS python3 0 3.6.15-150300.10.97.2
SUSE:Linux Enterprise Server 15 SP3-LTSS python3-core 0 3.6.15-150300.10.97.1
SUSE:Linux Enterprise Server 15 SP3-LTSS python39 0 3.9.23-150300.4.75.1

Related vulnerabilities