Description
The cleanup of tempfile.TemporaryDirectory is vulnerable to a race condition. An attacker who can modify the tree during cleanup can replace a directory with a symbolic link, causing files outside of the temporary directory to be deleted or have their permissions and file flags reset, with the privileges of the process performing the cleanup. Note that platforms where shutil.rmtree.avoids_symlink_attacks is false, remain affected, and file flags may still be reset outside of the tree on all platforms.
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.12.15affected3.13.0 to < 3.13.18affected3.14.0 to < 3.14.9affected3.15.0a1 to < 3.15.0rc3affected
References
- https://github.com/python/cpython/pull/157580 ↗
- https://github.com/python/cpython/issues/157579 ↗
- https://github.com/python/cpython/commit/5c20517a4fc56683efe63a7751020db9573f538d ↗
- https://github.com/python/cpython/commit/458e7134a5af7f86aee9d21b51cf499b41aa4420 ↗
- https://github.com/python/cpython/commit/e1f3590f155c6d66007e958c98c9d69316551993 ↗
- https://github.com/python/cpython/commit/06ef3d43fdaf4da97af12fa694b4886092c4b970 ↗
- https://github.com/python/cpython/commit/58ed0259cae509a19138795df302fe60b544dc74 ↗
- https://github.com/python/cpython/commit/0478b52788117db4b831b3efd648f56b777628aa ↗
- https://github.com/python/cpython/commit/c39b52d00b42200aaadff679e2fe3f1006d57c58 ↗
- http://www.openwall.com/lists/oss-security/2026/09/29/40 ↗