CVE-2025-4435

| EUVD-2025-16725 HIGH
2025-06-03 [email protected]
7.5
CVSS 3.1
Share

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

4
Patch Released
Mar 31, 2026 - 21:13 nvd
Patch available
Analysis Generated
Mar 14, 2026 - 17:04 vuln.today
EUVD ID Assigned
Mar 14, 2026 - 17:04 euvd
EUVD-2025-16725
CVE Published
Jun 03, 2025 - 13:15 nvd
HIGH 7.5

Description

When using a TarFile.errorlevel = 0 and extracting with a filter the documented behavior is that any filtered members would be skipped and not extracted. However the actual behavior of TarFile.errorlevel = 0 in affected versions is that the member would still be extracted and not skipped.

Analysis

Logic flaw in Python's TarFile module where the documented behavior of errorlevel=0 (skip filtered members) contradicts the actual implementation (extract filtered members anyway). This affects any application using Python's tarfile library with extraction filters, allowing attackers to extract files that should be blocked, potentially leading to path traversal or extraction of malicious content. The vulnerability has a high CVSS score (7.5) with network-accessible attack vector and no authentication required, though exploitation requires the application to implement extraction filters expecting them to be respected.

Technical Context

Python's tarfile module provides tar archive extraction with security filtering capabilities. When TarFile.errorlevel is set to 0 (the documented 'skip' behavior), filtered archive members should be silently skipped during extraction. However, due to a logic error (CWE-682: Incorrect Calculation), the actual implementation extracts these filtered members regardless of the errorlevel setting. This affects CPE ranges including python:python:* versions in the tarfile module. The root cause is CWE-682 (Incorrect Calculation/Logic Error), indicating a mismatch between intended security logic and implemented behavior. Applications relying on tarfile filters for security (e.g., blocking absolute paths, dangerous symlinks, or specific file patterns) cannot trust the filtering mechanism when errorlevel=0 is set.

Affected Products

Python tarfile module in standard library. Specific CPE data not provided in input, but vulnerability affects: python:python (all versions with the tarfile module where this logic error exists—likely Python 3.x versions prior to patch). Vendors/products affected include: any Python application using tarfile.TarFile.extractall() or extract() with a filter parameter and errorlevel=0 configuration. This includes tools like pip, package managers, deployment tools, and backup/extraction utilities built on Python's tarfile. Exact patched version numbers require reference to Python's official security advisory (python.org/dev/peps/pep-0506 or security.python.org).

Remediation

Immediate remediation: (1) Upgrade Python to the patched version once released (consult security.python.org for exact version bumps). (2) Workaround for applications: do not rely on errorlevel=0 for security filtering—instead, validate extracted file paths and permissions independently before extraction. (3) Avoid using tarfile extraction filters as a sole security control; implement additional validation logic. (4) If using tarfile, set errorlevel to non-zero values and handle exceptions explicitly rather than silently skipping. (5) For production systems, use allowlists of permitted file paths and reject archives containing unexpected entries. Apply vendor security updates when available. Reference official Python security advisories at https://security.python.org/ for patch availability and version numbers.

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: +0.1
CVSS: +38
POC: 0

Vendor Status

Ubuntu

Priority: Medium
python2.7
Release Status Version
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
bionic not-affected code not present
focal not-affected code not present
jammy not-affected code not present
trusty not-affected code not present
xenial not-affected code not present
questing DNE -
python3.4
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
trusty not-affected code not present
questing DNE -
python3.5
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
trusty not-affected code not present
xenial not-affected code not present
questing DNE -
python3.6
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
bionic not-affected code not present
questing DNE -
python3.7
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
bionic not-affected code not present
questing DNE -
python3.8
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
bionic not-affected code not present
focal not-affected code not present
questing DNE -
python3.9
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
focal not-affected code not present
questing DNE -
python3.10
Release Status Version
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
jammy not-affected code not present
questing DNE -
python3.11
Release Status Version
noble DNE -
oracular DNE -
plucky DNE -
upstream needs-triage -
jammy not-affected code not present
questing DNE -
python3.12
Release Status Version
jammy DNE -
plucky DNE -
upstream needs-triage -
noble released 3.12.3-1ubuntu0.7
oracular released 3.12.7-1ubuntu2.2
questing DNE -
python3.13
Release Status Version
jammy DNE -
noble DNE -
oracular released 3.13.0-1ubuntu0.3
plucky released 3.13.3-1ubuntu0.2
upstream released 3.13.4
questing not-affected 3.13.5
python3.14
Release Status Version
jammy DNE -
noble DNE -
oracular DNE -
plucky DNE -
upstream released 3.14.0b3
questing released 3.14.0-1

Debian

jython
Release Status Fixed Version Urgency
bullseye fixed 2.7.2+repack1-3 -
forky, sid, bookworm, trixie fixed 2.7.3+repack1-1 -
(unstable) not-affected - -
pypy3
Release Status Fixed Version Urgency
bullseye not-affected - -
bullseye (security) fixed 7.3.5+dfsg-2+deb11u5 -
bookworm vulnerable 7.3.11+dfsg-2+deb12u3 -
trixie vulnerable 7.3.19+dfsg-2 -
forky, sid fixed 7.3.20+dfsg-4 -
experimental fixed 7.3.20+dfsg-1 -
(unstable) fixed 7.3.20+dfsg-2 -
python2.7
Release Status Fixed Version Urgency
bullseye fixed 2.7.18-8+deb11u1 -
(unstable) not-affected - -
python3.11
Release Status Fixed Version Urgency
bookworm not-affected - -
bookworm (security) fixed 3.11.2-6+deb12u3 -
(unstable) fixed (unfixed) -
python3.13
Release Status Fixed Version Urgency
trixie fixed 3.13.5-2 -
forky, sid fixed 3.13.12-1 -
(unstable) fixed 3.13.4-1 -
python3.9
Release Status Fixed Version Urgency
bullseye fixed 3.9.2-1 -
bullseye (security) fixed 3.9.2-1+deb11u5 -
(unstable) not-affected - -
python3.12
Release Status Fixed Version Urgency
(unstable) fixed (unfixed) -

Share

CVE-2025-4435 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy