CVE-2026-12345
Race condition in tempfile.TemporaryDirectory cleanup allows deleting files outside the temporary directory
At a glance
- Severity
- MEDIUM 5.9
- EPSS
- EPSS 0.34 % · percentile 28 (2026-10-27)
- State
- PUBLISHED
- Published
- Updated
- Assigner
- PSF
- NVD status
- Awaiting Analysis
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.
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 4.0 | MEDIUM 5.9 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N | PSF |
| CVSS 4.0 | MEDIUM 5.9 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X | NVD · cna@python.org (Secondary) |
Weaknesses (CWE)
European references
- ENISA EUVD · EUVD-2026-89183
- GCVE · GCVE-0-2026-12345
CERT-FR advisories
- CERTFR-2026-AVI-1239 — Vulnérabilité dans CPython · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Python Software Foundation · CPython | affected 0 < 3.12.15 ; affected 3.13.0 < 3.13.18 ; affected 3.14.0 < 3.14.9 ; affected 3.15.0a1 < 3.15.0rc3 |
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
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |