Vulnerability Description
tarfile.extractall() with the 'data' or 'tar' filter could be bypassed by a crafted archive where a hardlink references a symlink stored at a deeper name than the hardlink itself. The extraction fallback validated the symlink at it's archived location but recreated it at the hardlink's shallower path, letting a relative target the filter judged contained escape the destination directory. This allowed a malicious tar archive to create a symlink pointing outside the destination, enabling out-of-destination file reads or writes. This was an incomplete fix of CVE-2025-4330.
Related Weaknesses (CWE)
References
- https://github.com/python/cpython/commit/0f852b3f07dd8e71e40326a51c02afbf16a42cc
- https://github.com/python/cpython/commit/27dd970bf6b17ebca7c8ed486a40ab043ed7af8
- https://github.com/python/cpython/commit/672825e2f36a57e173959b0d9d409d4560dab8d
- https://github.com/python/cpython/commit/771d12dda5140313db0ac550292987975651bbd
- https://github.com/python/cpython/commit/79c06bd5c6afa3c440d50faf7ee1b147c8832b4
- https://github.com/python/cpython/commit/be13e86f6b9788a6f4d0419dffef72cbae5865c
- https://github.com/python/cpython/commit/e5fdbd8d5aa923bd9111b112ea73bd6ec7c4787
- https://github.com/python/cpython/issues/151558
- https://github.com/python/cpython/pull/151559
- https://mail.python.org/archives/list/[email protected]/thread/LD6QII
FAQ
What is CVE-2026-11940?
CVE-2026-11940 is a documented vulnerability. tarfile.extractall() with the 'data' or 'tar' filter could be bypassed by a crafted archive where a hardlink references a symlink stored at a deeper name than the hardlink itself. The extraction f...
How severe is CVE-2026-11940?
CVSS scoring is not yet available for CVE-2026-11940. Check NVD for updates.
Is there a patch for CVE-2026-11940?
Check the references section above for vendor advisories and patch information. Review vendor security bulletins for remediation guidance.