{"id":"CVE-2026-114583","state":"PUBLISHED","title":"tar filter allows writing outside destination via empty-named symlink","description":"tarfile.tar_filter could be bypassed using crafted link entries, including symlinks with empty or directory-like names, to redirect later archive members outside the intended extraction directory. This allowed a malicious tar archive to cause tarfile.extractall() with filter=\"tar\" to write files outside the destination directory, subject to the permissions of the extracting process.\n\nThis is the tarfile.tar_filter counterpart of CVE-2026-7774, which covered tarfile.data_filter.","publishedAt":"2026-10-22T20:57:36.019Z","updatedAt":"2026-10-27T00:36:15.766Z","severity":{"score":6.9,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/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.11.18","versionType":"python"},{"version":"3.12.0","status":"affected","lessThan":"3.12.16","versionType":"python"},{"version":"3.13.0","status":"affected","lessThan":"3.13.18","versionType":"python"},{"version":"3.14.0","status":"affected","lessThan":"3.14.10","versionType":"python"},{"version":"3.15.0","status":"affected","lessThan":"3.15.2","versionType":"python"},{"version":"3.16.0a1","status":"affected","lessThan":"3.16.0","versionType":"python"}],"modules":["tarfile"],"repo":"https://github.com/python/cpython"}],"references":["https://github.com/python/cpython/pull/160098","https://github.com/python/cpython/issues/160097","https://mail.python.org/archives/list/security-announce@python.org/thread/43JOWPRAV5DI3VZ4FUEUAZOHCATXXOCK/","https://github.com/python/cpython/commit/0901ad4ffb22605f12b705d1c1197f0a01f0ba0b","https://github.com/python/cpython/commit/c6ada40177436e4e2533a7b252082b5f0c043477","https://github.com/python/cpython/commit/e7e0b3523ad6ba8472873dda594cf4021a16f8b5","https://github.com/python/cpython/commit/04d8fca7da2cf3ebc0881fec8a53a1330c3b665d","https://github.com/python/cpython/commit/bc93f8ad4c4a0f92d184ec8fccc8ff8a651dcec2","https://github.com/python/cpython/commit/f4401da82e2baec5dab06cf070fbca77d53220f0"],"weaknesses":[],"ingestedAt":"2026-10-29T20:10:43.281Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/114xxx/CVE-2026-114583.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-114583","state":"PUBLISHED","datePublished":"2026-10-22T20:57:36.019Z","dateUpdated":"2026-10-27T00:36:15.766Z","assignerShortName":"PSF","assignerOrgId":"28c92f92-d60d-412d-b760-e73465c3df22","dateReserved":"2026-10-21T18:58:26.985Z"},"containers":{"cna":{"title":"tar filter allows writing outside destination via empty-named symlink","descriptions":[{"lang":"en","value":"tarfile.tar_filter could be bypassed using crafted link entries, including symlinks with empty or directory-like names, to redirect later archive members outside the intended extraction directory. This allowed a malicious tar archive to cause tarfile.extractall() with filter=\"tar\" to write files outside the destination directory, subject to the permissions of the extracting process.\n\nThis is the tarfile.tar_filter counterpart of CVE-2026-7774, which covered tarfile.data_filter."}],"affected":[{"vendor":"Python Software Foundation","product":"CPython","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.11.18","versionType":"python"},{"version":"3.12.0","status":"affected","lessThan":"3.12.16","versionType":"python"},{"version":"3.13.0","status":"affected","lessThan":"3.13.18","versionType":"python"},{"version":"3.14.0","status":"affected","lessThan":"3.14.10","versionType":"python"},{"version":"3.15.0","status":"affected","lessThan":"3.15.2","versionType":"python"},{"version":"3.16.0a1","status":"affected","lessThan":"3.16.0","versionType":"python"}],"modules":["tarfile"],"repo":"https://github.com/python/cpython"}],"references":[{"url":"https://github.com/python/cpython/pull/160098","tags":["patch"]},{"url":"https://github.com/python/cpython/issues/160097","tags":["issue-tracking"]},{"url":"https://mail.python.org/archives/list/security-announce@python.org/thread/43JOWPRAV5DI3VZ4FUEUAZOHCATXXOCK/"},{"url":"https://github.com/python/cpython/commit/0901ad4ffb22605f12b705d1c1197f0a01f0ba0b","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/c6ada40177436e4e2533a7b252082b5f0c043477","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/e7e0b3523ad6ba8472873dda594cf4021a16f8b5","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/04d8fca7da2cf3ebc0881fec8a53a1330c3b665d","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/bc93f8ad4c4a0f92d184ec8fccc8ff8a651dcec2","tags":["patch"]},{"url":"https://github.com/python/cpython/commit/f4401da82e2baec5dab06cf070fbca77d53220f0","tags":["patch"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"LOCAL","baseScore":6.9,"baseSeverity":"MEDIUM","exploitMaturity":"NOT_DEFINED","privilegesRequired":"NONE","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/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"}]}],"providerMetadata":{"shortName":"PSF","orgId":"28c92f92-d60d-412d-b760-e73465c3df22","dateUpdated":"2026-10-27T00:36:15.766Z"},"credits":[{"lang":"en","type":"coordinator","value":"Stan Ulbrych (https://github.com/StanFromIreland)"},{"lang":"en","type":"remediation reviewer","value":"Ethan Furman (https://github.com/ethanfurman)"}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"cvelib 1.8.0"}}}}}