{"id":"CVE-2026-3087","summary":"shutil.unpack_archive() doesn't check for Windows absolute paths in ZIPs","details":"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.","aliases":["BIT-libpython-2026-3087","BIT-python-2026-3087","BIT-python-min-2026-3087","PSF-2026-22"],"modified":"2026-08-19T12:26:06.535882691Z","published":"2026-04-27T20:46:43.201Z","database_specific":{"cwe_ids":["CWE-22"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/3xxx/CVE-2026-3087.json","cna_assigner":"PSF"},"references":[{"type":"WEB","url":"http://www.openwall.com/lists/oss-security/2026/04/28/9"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/3xxx/CVE-2026-3087.json"},{"type":"ADVISORY","url":"https://mail.python.org/archives/list/security-announce@python.org/thread/X6FXE5C6KDKOVNX3EC3DWD5RUPFWOZA4/"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-3087"},{"type":"REPORT","url":"https://github.com/python/cpython/issues/146581"},{"type":"FIX","url":"https://github.com/python/cpython/commit/1071290169f85c09cf767c1099564a9426cdc7e8"},{"type":"FIX","url":"https://github.com/python/cpython/commit/65b255416ae217bf0e22085be3c1976cea18bd8c"},{"type":"FIX","url":"https://github.com/python/cpython/commit/7ef7dd0a74f47facd1fadcbc77f8fb03beb5eb4d"},{"type":"FIX","url":"https://github.com/python/cpython/commit/8e13025747e1ca72e86d1f35637123f9c306f0cb"},{"type":"FIX","url":"https://github.com/python/cpython/commit/8ee6aff14054b37b53e47194a2fa313e98163c94"},{"type":"FIX","url":"https://github.com/python/cpython/commit/a6650a2cdf0c49fb8ce0c982903aa2aa274beefe"},{"type":"FIX","url":"https://github.com/python/cpython/commit/ab5ef98af693bded74a738570e81ea70abef2840"},{"type":"FIX","url":"https://github.com/python/cpython/commit/b01e594fbe754a960212f908d047294e880b52fd"},{"type":"FIX","url":"https://github.com/python/cpython/commit/ba0aca3bffce431fe2fbd53ca4cd6a717a2e2c19"},{"type":"FIX","url":"https://github.com/python/cpython/commit/fc829e88753858c8ac669594bf0093f44948c0f4"},{"type":"FIX","url":"https://github.com/python/cpython/pull/146591"},{"type":"PACKAGE","url":"https://github.com/python/cpython"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/python/cpython","events":[{"introduced":"0"},{"fixed":"1071290169f85c09cf767c1099564a9426cdc7e8"},{"fixed":"65b255416ae217bf0e22085be3c1976cea18bd8c"},{"fixed":"7ef7dd0a74f47facd1fadcbc77f8fb03beb5eb4d"},{"fixed":"8e13025747e1ca72e86d1f35637123f9c306f0cb"},{"fixed":"8ee6aff14054b37b53e47194a2fa313e98163c94"},{"fixed":"a6650a2cdf0c49fb8ce0c982903aa2aa274beefe"},{"fixed":"ab5ef98af693bded74a738570e81ea70abef2840"},{"fixed":"b01e594fbe754a960212f908d047294e880b52fd"},{"fixed":"ba0aca3bffce431fe2fbd53ca4cd6a717a2e2c19"},{"fixed":"fc829e88753858c8ac669594bf0093f44948c0f4"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:python:python:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"last_affected":"3.14.4"}]}}],"versions":["v3.14.5","v3.15.0b1","v3.14.5rc1","v3.13.13","v3.14.4","v3.15.0a8","v3.15.0a7","v3.12.13","v3.10.20","v3.11.15","v3.15.0a6","v3.13.12","v3.14.3","v3.15.0a5","v3.15.0a4","v3.15.0a3","v3.14.2","v3.13.11","v3.13.10","v3.14.1","v3.15.0a2","v3.15.0a1","v3.13.8","v3.11.14","v3.10.19","v3.12.12","v3.14.0","v3.14.0rc3","v3.13.7","v3.14.0rc2","v3.13.6","v3.14.0rc1","v3.14.0b4","v3.14.0b3","v3.13.5","v3.13.4","v3.11.13","v3.10.18","v3.12.11","v3.14.0b2","v3.14.0b1","v3.13.3","v3.11.12","v3.12.10","v3.14.0a7","v3.10.17","v3.14.0a6","v3.14.0a5","v3.13.2","v3.12.9","v3.14.0a4","v3.14.0a3","v3.13.1","v3.12.8","v3.10.16","v3.11.11","v3.14.0a2","v3.14.0a1","v3.13.0","v3.13.0rc3","v3.12.7","v3.11.10","v3.10.15","v3.13.0rc2","v3.12.6","v3.12.5","v3.13.0rc1","v3.13.0b4","v3.13.0b3","v3.12.4","v3.13.0b2","v3.13.0b1","v3.13.0a6","v3.12.3","v3.11.9","v3.10.14","v3.13.0a5","v3.13.0a4","v3.12.2","v3.11.8","v3.13.0a3","v3.12.1","v3.11.7","v3.13.0a2","v3.13.0a1","v3.11.6","v3.12.0","v3.12.0rc3","v3.12.0rc2","v3.11.5","v3.10.13","v3.12.0rc1","v3.12.0b4","v3.12.0b3","v3.11.4","v3.10.12","v3.12.0b2","v3.12.0b1","v3.10.11","v3.11.3","v3.12.0a7","v3.12.0a6","v3.10.10","v3.11.2","v3.12.0a5","v3.12.0a4","v3.12.0a3","v3.10.9","v3.11.1","v3.12.0a2","v3.12.0a1","v3.11.0rc2","v3.10.8","v3.10.7","v3.11.0rc1","v3.10.6","v3.11.0b5","v3.11.0b4","v3.10.5","v3.11.0b3","v3.11.0b2","v3.11.0b1","v3.11.0a7","v3.10.4","v3.10.3","v3.11.0a6","v3.11.0a5","v3.11.0a4","v3.10.2","v3.11.0a3","v3.10.1","v3.10.0rc2","v3.10.0rc1","v3.10.0b4","v3.10.0b3","v3.10.0b2","v3.10.0b1","v3.10.0a7","v3.10.0a1","v3.9.0a2","v3.7.0a2","v3.6.0b1","v3.6.0a3","v3.5.0b1","v3.5.0a4","v3.5.0a3","v3.5.0a2","v3.5.0a1","v3.4.0b3","v3.4.0b2","v3.4.0b1","v3.4.0a4","v3.4.0a3","v3.4.0a2","v3.4.0a1","v3.3.0rc3","v3.3.0rc2","v3.3.0rc1","v3.3.0b2","v3.3.0b1","v3.3.0a4","v3.3.0a3","v3.3.0a2","v3.2rc3","v3.2rc2","v3.2rc1","v3.2b2","v3.2b1","v3.2a4","v3.2a3","v3.2a2","v3.2a1","v3.1","v3.1rc2","v3.1rc1","v3.1b1","v3.1a2","v3.1a1","v3.0rc3","v3.0rc2","v3.0rc1","v3.0b3","v3.0b2","v3.0b1","v3.0a5","v3.0a4","v3.0a3","v3.0a2","v3.0a1","v2.4","v2.4c1","v2.4b2","v2.4b1","v2.4a3","v2.4a2","v2.4a1","v2.3c2","v2.3c1","v2.2a3","v2.1","v2.1c2","v2.1c1","v2.1b2","v2.1b1","v2.1a2","v2.1a1","v2.0","v2.0c1","v2.0b2","v2.0b1","v1.6a2","v1.6a1","v1.5.2","v1.5.2c1","v1.5.2b2","v1.5.2b1","v1.5.2a2","v1.5.2a1","v1.5.1","v1.5","v1.5b2","v1.5b1","v1.5a4","v1.5a3","v1.5a2","v1.5a1","v1.4","v1.4b3","v1.4b2","v1.4b1","v1.3","v1.3b1","v1.2","v1.2b4","v1.2b3","v1.2b2","v1.2b1","v1.1.1","v1.1","v1.0.2","v1.0.1","v0.9.9","v0.9.8"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-3087.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"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"}]}