
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-19672 is a path traversal vulnerability in Python's tarfile module affecting CPython versions before 3.16.0. The flaw causes the tar and data extraction filters to create empty directories outside the intended extraction destination when processing archive members whose paths leave and re-enter the destination directory (e.g., ../evil/../dest/sub/file). The containment check correctly uses the resolved path, but intermediate directories are created using the raw, unresolved member name. This issue affects POSIX platforms only; Windows is not affected because .. components are collapsed before reaching the filesystem. It was disclosed on August 19, 2026, with a CVSS v4.0 base score of 6.3 (Medium), assigned by the Python Software Foundation (GitHub Advisory, EUVD).
The root cause is an inconsistency in how the tarfile module's extraction filters validate versus create paths. The containment check resolves symlinks and .. components to verify the final destination is within bounds, but the os.makedirs() call (or equivalent) uses the member name as-is, allowing intermediate directories like ../evil/ to be created on disk before the path traverses back into the legitimate destination. This is a variant of path traversal (related to CWE-22: Improper Limitation of a Pathname to a Restricted Directory). Exploitation requires that the attacker control the contents of a tar archive that is subsequently extracted by a vulnerable Python application using the tar or data filter. The fix was merged in CPython pull request #156000 and backported to branches 3.10 through 3.15 (CPython PR #156000, GitHub Advisory).
Successful exploitation allows an unauthenticated attacker who can supply a malicious tar archive to create arbitrary empty directories outside the intended extraction destination on POSIX systems. Critically, only empty directories are created outside the destination — file contents are still extracted within the intended path — limiting the direct impact. However, directory creation in unexpected locations could interfere with application logic, enable race conditions, or facilitate privilege escalation in environments where directory existence is used as a security signal. Confidentiality and availability of the vulnerable system are not directly impacted (GitHub Advisory, EUVD).
As of the disclosure date (August 19, 2026), there is no public proof-of-concept exploit and no evidence of in-the-wild exploitation. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires the attacker to control the contents of a tar archive processed by a vulnerable application, which limits the attack surface to scenarios involving untrusted archive ingestion (GitHub Advisory, EUVD).
../evil/../<dest_final_component>/subdir/file.txt, where <dest_final_component> is the last directory name of the extraction target.tarfile module with the tar or data filter on a POSIX system.tarfile.extract() or tarfile.extractall() with the filter='tar' or filter='data' argument, processing the malicious member.tarfile module's containment check passes (the resolved final path is within the destination), but os.makedirs() creates the intermediate ../evil/ directory outside the extraction root before the path returns to the destination.tarfile module related to path handling.tarfile.extractall() or tarfile.extract() with filter='tar' or filter='data' on POSIX systems while processing externally supplied archives.Upgrade CPython to version 3.16.0 or later, which contains the fix. Backports have been prepared for CPython 3.10, 3.11, 3.12, 3.13, 3.14, and 3.15 branches — apply the relevant security update for your Python version once released. As a workaround, extract tar archives into a secure, randomized temporary directory (e.g., using tempfile.mkdtemp()), as the vulnerability requires the member's path to contain the destination directory's own final component — randomized directory names are not affected. Additionally, avoid extracting tar archives from untrusted sources, and consider validating all member paths before extraction (CPython PR #156000, GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."