{"id":"CVE-2026-3087","state":"PUBLISHED","title":"shutil.unpack_archive() doesn't check for Windows absolute paths in ZIPs","description":"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.","publishedAt":"2026-04-27T20:46:43.201Z","updatedAt":"2026-08-13T00:28:13.615Z","severity":{"score":6,"label":"Medium","version":"4.0","vector":"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","source":"PSF"},"assigner":"PSF","products":["Python Software Foundation CPython"],"affected":[{"vendor":"Python Software Foundation","product":"CPython","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.10.21","versionType":"python"},{"version":"3.11.0","status":"affected","lessThan":"3.11.16","versionType":"python"},{"version":"3.12.0","status":"affected","lessThan":"3.12.14","versionType":"python"},{"version":"3.13.0","status":"affected","lessThan":"3.13.14","versionType":"python"},{"version":"3.14.0a1","status":"affected","lessThan":"3.14.5rc1","versionType":"python"},{"version":"3.15.0a1","status":"affected","lessThan":"3.15.0b1","versionType":"python"}],"modules":["shutil"],"repo":"https://github.com/python/cpython"}],"references":["https://github.com/python/cpython/pull/146591","https://github.com/python/cpython/issues/146581","https://mail.python.org/archives/list/security-announce@python.org/thread/X6FXE5C6KDKOVNX3EC3DWD5RUPFWOZA4/","https://github.com/python/cpython/commit/ab5ef98af693bded74a738570e81ea70abef2840","https://github.com/python/cpython/commit/b01e594fbe754a960212f908d047294e880b52fd","https://github.com/python/cpython/commit/fc829e88753858c8ac669594bf0093f44948c0f4","https://github.com/python/cpython/commit/65b255416ae217bf0e22085be3c1976cea18bd8c","https://github.com/python/cpython/commit/8e13025747e1ca72e86d1f35637123f9c306f0cb","https://github.com/python/cpython/commit/8ee6aff14054b37b53e47194a2fa313e98163c94","https://github.com/python/cpython/commit/ba0aca3bffce431fe2fbd53ca4cd6a717a2e2c19","https://github.com/python/cpython/commit/a6650a2cdf0c49fb8ce0c982903aa2aa274beefe","https://github.com/python/cpython/commit/7ef7dd0a74f47facd1fadcbc77f8fb03beb5eb4d","https://github.com/python/cpython/commit/1071290169f85c09cf767c1099564a9426cdc7e8","http://www.openwall.com/lists/oss-security/2026/04/28/9"],"weaknesses":["CWE-22"],"ingestedAt":"2026-10-29T20:11:50.837Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/3xxx/CVE-2026-3087.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-3087","state":"PUBLISHED","datePublished":"2026-04-27T20:46:43.201Z","dateUpdated":"2026-08-13T00:28:13.615Z","assignerShortName":"PSF","assignerOrgId":"28c92f92-d60d-412d-b760-e73465c3df22","dateReserved":"2026-02-23T23:14:46.433Z"},"containers":{"cna":{"title":"shutil.unpack_archive() doesn't check for Windows absolute paths in ZIPs","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"Python Software Foundation","product":"CPython","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.10.21","versionType":"python"},{"version":"3.11.0","status":"affected","lessThan":"3.11.16","versionType":"python"},{"version":"3.12.0","status":"affected","lessThan":"3.12.14","versionType":"python"},{"version":"3.13.0","status":"affected","lessThan":"3.13.14","versionType":"python"},{"version":"3.14.0a1","status":"affected","lessThan":"3.14.5rc1","versionType":"python"},{"version":"3.15.0a1","status":"affected","lessThan":"3.15.0b1","versionType":"python"}],"modules":["shutil"],"repo":"https://github.com/python/cpython"}],"references":[{"url":"https://github.com/python/cpython/pull/146591","tags":["patch"]},{"url":"https://github.com/python/cpython/issues/146581","tags":["issue-tracking"]},{"url":"https://mail.python.org/archives/list/security-announce@python.org/thread/X6FXE5C6KDKOVNX3EC3DWD5RUPFWOZA4/","tags":["vendor-advisory"]},{"url":"https://github.com/python/cpython/commit/ab5ef98af693bded74a738570e81ea70abef2840","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/b01e594fbe754a960212f908d047294e880b52fd","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/fc829e88753858c8ac669594bf0093f44948c0f4","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/65b255416ae217bf0e22085be3c1976cea18bd8c","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/8e13025747e1ca72e86d1f35637123f9c306f0cb","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/8ee6aff14054b37b53e47194a2fa313e98163c94","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/ba0aca3bffce431fe2fbd53ca4cd6a717a2e2c19","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/a6650a2cdf0c49fb8ce0c982903aa2aa274beefe","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/7ef7dd0a74f47facd1fadcbc77f8fb03beb5eb4d","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/1071290169f85c09cf767c1099564a9426cdc7e8","tags":["patch"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"PRESENT","attackVector":"NETWORK","baseScore":6,"baseSeverity":"MEDIUM","exploitMaturity":"NOT_DEFINED","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"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","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"HIGH","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-22","description":"CWE-22","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"PSF","orgId":"28c92f92-d60d-412d-b760-e73465c3df22","dateUpdated":"2026-08-13T00:28:13.615Z"},"credits":[{"lang":"en","type":"remediation developer","value":"Serhiy Storchaka (https://github.com/serhiy-storchaka)"},{"lang":"en","type":"coordinator","value":"Seth Larson (https://github.com/sethmlarson)"},{"lang":"en","type":"reporter","value":"GGAutomaton (https://github.com/GGAutomaton)"}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 0.6.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/04/28/9"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-04-28T05:07:42.331Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-04-28T13:38:08.747185Z","id":"CVE-2026-3087","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-04-28T14:35:55.942Z"}}]}}}