{"id":"PSF-2026-45","details":"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.","aliases":["CVE-2026-114583"],"modified":"2026-10-23T02:00:45.395220171Z","published":"2026-10-22T20:57:36.019Z","database_specific":{"cwe_ids":[]},"references":[{"type":"WEB","url":"https://github.com/python/cpython/pull/160098"},{"type":"REPORT","url":"https://github.com/python/cpython/issues/160097"},{"type":"WEB","url":"https://mail.python.org/archives/list/security-announce@python.org/thread/43JOWPRAV5DI3VZ4FUEUAZOHCATXXOCK/"},{"type":"FIX","url":"https://github.com/python/cpython/commit/0901ad4ffb22605f12b705d1c1197f0a01f0ba0b"},{"type":"FIX","url":"https://github.com/python/cpython/commit/c6ada40177436e4e2533a7b252082b5f0c043477"},{"type":"FIX","url":"https://github.com/python/cpython/commit/e7e0b3523ad6ba8472873dda594cf4021a16f8b5"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/python/cpython","events":[{"introduced":"0"},{"fixed":"0901ad4ffb22605f12b705d1c1197f0a01f0ba0b"},{"fixed":"c6ada40177436e4e2533a7b252082b5f0c043477"},{"fixed":"e7e0b3523ad6ba8472873dda594cf4021a16f8b5"}]}],"versions":["v3.14.9","v3.15.1","v3.16.0a1","v3.15.0","v3.15.0rc3","v3.14.8","v3.15.0rc2","v3.14.7","v3.15.0rc1","v3.15.0b4","v3.15.0b3","v3.14.6","v3.15.0b2","v3.14.5","v3.15.0b1","v3.14.5rc1","v3.14.4","v3.15.0a8","v3.15.0a7","v3.15.0a6","v3.14.3","v3.15.0a5","v3.15.0a4","v3.15.0a3","v3.14.2","v3.14.1","v3.15.0a2","v3.15.0a1","v3.14.0","v3.14.0rc3","v3.14.0rc2","v3.14.0rc1","v3.14.0b4","v3.14.0b3","v3.14.0b2","v3.14.0b1","v3.14.0a7","v3.14.0a6","v3.14.0a5","v3.14.0a4","v3.14.0a3","v3.14.0a2","v3.14.0a1","v3.13.0b1","v3.13.0a6","v3.13.0a5","v3.13.0a4","v3.13.0a3","v3.13.0a2","v3.13.0a1","v3.12.0b1","v3.12.0a7","v3.12.0a6","v3.12.0a5","v3.12.0a4","v3.12.0a3","v3.12.0a2","v3.12.0a1","v3.11.0b1","v3.11.0a7","v3.11.0a6","v3.11.0a5","v3.11.0a4","v3.11.0a3","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://github.com/psf/advisory-database/blob/main/advisories/python/PSF-2026-45.json"}}],"schema_version":"1.9.0"}