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. This is the tarfile.tar_filter counterpart of CVE-2026-7774, which covered tarfile.data_filter.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Python Software Foundation CPython
Default version status: unaffected
0 to < 3.11.18affected3.12.0 to < 3.12.16affected3.13.0 to < 3.13.18affected3.14.0 to < 3.14.10affected3.15.0 to < 3.15.2affected3.16.0a1 to < 3.16.0affected
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 ↗