CVE-2026-3087 json
shutil.unpack_archive() doesn't check for Windows absolute paths in ZIPs
published 2026-04-27 6 mo ago modified 2026-10-26 13 d ago also BIT-libpython-2026-3087 , BIT-python-2026-3087 , BIT-python-min-2026-3087 , EUVD-2026-25922
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 46%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- bitnami libpython 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.5
- bitnami python 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.5
- bitnami python-min 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.5
- Python Software Foundation CPython 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.5rc1, 3.15.0b1
- github.com/python/cpython@ab5ef98 commit
- github.com/python/cpython@b01e594 commit
- github.com/python/cpython@fc829e8 commit
- github.com/python/cpython@65b2554 commit
- github.com/python/cpython@8e13025 commit
- github.com/python/cpython@8ee6aff commit
- github.com/python/cpython@ba0aca3 commit
- github.com/python/cpython@a6650a2 commit
- github.com/python/cpython@7ef7dd0 commit
- github.com/python/cpython@1071290 commit
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 6 mo ago
Exploit prediction
0.55% chance of exploitation in the next 30 days, higher than 46% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/python/cpython/issues/146581 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.0 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 6.0 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | libpython | <3.10.21 >=3.11.0, <3.11.16 >=3.12.0, <3.12.14 >=3.13.0, <3.13.14 >=3.14.0, <3.14.5 |
3.10.21 3.11.16 3.12.14 3.13.14 3.14.5 |
| bitnami | python | <3.10.21 >=3.11.0, <3.11.16 >=3.12.0, <3.12.14 >=3.13.0, <3.13.14 >=3.14.0, <3.14.5 |
3.10.21 3.11.16 3.12.14 3.13.14 3.14.5 |
| bitnami | python-min | <3.10.21 >=3.11.0, <3.11.16 >=3.12.0, <3.12.14 >=3.13.0, <3.13.14 >=3.14.0, <3.14.5 |
3.10.21 3.11.16 3.12.14 3.13.14 3.14.5 |
Affected products
- Python Software Foundation CPython
Classification
- Weakness
-
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
References
-
github.com
/python/cpython/pull/146591
patch, issue-tracking
-
github.com
/python/cpython/commit/ab5ef98af693bded74a738570e81ea70abef2840
patch
-
github.com
/python/cpython/commit/b01e594fbe754a960212f908d047294e880b52fd
patch
-
github.com
/python/cpython/commit/fc829e88753858c8ac669594bf0093f44948c0f4
patch
-
github.com
/python/cpython/commit/65b255416ae217bf0e22085be3c1976cea18bd8c
patch
-
github.com
/python/cpython/commit/8e13025747e1ca72e86d1f35637123f9c306f0cb
patch
-
github.com
/python/cpython/commit/8ee6aff14054b37b53e47194a2fa313e98163c94
patch
-
github.com
/python/cpython/commit/ba0aca3bffce431fe2fbd53ca4cd6a717a2e2c19
patch
-
github.com
/python/cpython/commit/a6650a2cdf0c49fb8ce0c982903aa2aa274beefe
patch, web
-
github.com
/python/cpython/commit/7ef7dd0a74f47facd1fadcbc77f8fb03beb5eb4d
patch, web
-
github.com
/python/cpython/commit/1071290169f85c09cf767c1099564a9426cdc7e8
patch, web
-
github.com
/python/cpython/issues/146581
issue-tracking, exploit, patch, vendor-advisory, advisory
-
mail.python.org
/archives/list/security-announce@python.org/thread/X6FXE5C6KDKOVNX3EC3DWD5RUPFWOZA4/
vendor-advisory, mailing-list, advisory
-
openwall.com
/lists/oss-security/2026/04/28/9
mailing-list, third-party-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-3087
web
Sources
- CVE List CVE-2026-3087
- NVD CVE-2026-3087
- OSV BIT-libpython-2026-3087
- OSV BIT-python-2026-3087
- OSV BIT-python-min-2026-3087
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.