CVE-2026-3087: shutil.unpack_archive() doesn't check for Windows absolute paths in ZIPs
If `shutil.unpack_archive()` is given a ZIP archive with an absolute Windows path containing a drive (`C:\\...`) then the archive will be extracted outside the target directory which is different than other operating systems. Only Windows is affected by this vulnerability.
Security readout for executives and security teams
Plain-English summary
On Windows, a malicious ZIP processed by Python’s shutil.unpack_archive() can place files outside the intended extraction folder. This could let an attacker alter files accessible to the Python process. Other operating systems are not affected.
Executive priority
Prioritize prompt remediation for Windows services processing untrusted ZIPs. Systems without that data flow have substantially lower urgency but should still verify versions and patch status.
Technical view
CVE-2026-3087 is a CWE-22 path traversal issue. CPython does not correctly contain ZIP entries using absolute Windows drive paths during shutil.unpack_archive(). The supplied CVSS 4.0 score is 6.0, reflecting potentially high integrity impact without stated confidentiality or availability impact.
Likely exposure
Exposure is limited to Windows applications that use shutil.unpack_archive() for ZIP files and accept attacker-influenced archives. Risk depends on the Python process’s filesystem permissions. The supplied affected-version data is ambiguous, so exact vulnerable releases must be confirmed against PSF guidance.
Exploitation context
The supplied CVSS vector indicates network reachability, low attack complexity, low privileges, no user interaction, and a prerequisite condition. CISA KEV status is false, and the bundle provides no evidence of active exploitation.
Researcher notes
The core boundary failure is Windows-specific handling of drive-qualified absolute paths. Multiple CPython patch commits are referenced, but the bundle does not clearly map fixed versions or affected ranges. Validate branch applicability through the vendor advisory and pull request; do not infer exposure from version strings alone.
Mitigation direction
Inventory Windows workloads using shutil.unpack_archive() to process ZIP files.
Follow the PSF advisory and install the applicable fixed release or branch patch.
Until patched, prevent affected workloads from processing attacker-controlled ZIP archives.
Limit affected process write permissions to reduce potential integrity impact.
Validation and detection
Confirm each relevant workload’s operating system, Python version, and distribution source.
Identify shutil.unpack_archive() calls that can receive attacker-influenced ZIP files.
Compare installed versions with the PSF advisory and applicable CPython branch patches.
Safely verify that patched runtimes contain absolute Windows paths within the extraction directory.
Review writable locations for unexplained file changes associated with archive-processing activity.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-22: File access and web shell behavior lookup
File traversal and upload weaknesses can lead teams to review file, web shell, execution, and collection telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-22 · source CWE mapping
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.