CVE-2025-12084 Quadratic complexity in node ID cache clearing
Attackers can cause denial of service by submitting excessively nested XML documents, triggering quadratic complexity in the Python minidom parser.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-12084?
CVE-2025-12084 is a medium-severity denial of service vulnerability in Python Python, published on 3 Dec 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
When building nested elements using xml.dom.minidom methods such as appendChild() that have a dependency on _clear_id_cache() the algorithm is quadratic. Availability can be impacted when building excessively nested documents.
Weakness: CWE-407
Which versions are affected by CVE-2025-12084?
3 open source packages ship an affected version, including libpython, python and python-min. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
libpython Bitnami | All versions | 3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.2 |
python Bitnami | All versions | 3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.2 |
python-min Bitnami | All versions | 3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.2 |
Linux distribution packages (37)
platform-python AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
platform-python-debug AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
platform-python-devel AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
python3-idle AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
python3-libs AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
python3-test AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
python3-tkinter AlmaLinux:8 | All versions | 3.6.8-72.el8_10.alma.1 |
python-unversioned-command AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3 AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3-debug AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3-devel AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3-idle AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3-libs AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3-test AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
python3-tkinter AlmaLinux:9 | All versions | 3.9.25-3.el9_7 |
platform-python Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
platform-python-debug Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
platform-python-devel Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
python3-debuginfo Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
python3-debugsource Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
python3-idle Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
python3-test Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
python3-tkinter Red Hat:enterprise_linux:8::appstream | All versions | 0:3.6.8-72.el8_10 |
platform-python Red Hat:enterprise_linux:8::baseos | All versions | 0:3.6.8-72.el8_10 |
python3 Red Hat:enterprise_linux:8::baseos | All versions | 0:3.6.8-72.el8_10 |
python3-debuginfo Red Hat:enterprise_linux:8::baseos | All versions | 0:3.6.8-72.el8_10 |
python3-debugsource Red Hat:enterprise_linux:8::baseos | All versions | 0:3.6.8-72.el8_10 |
python3-libs Red Hat:enterprise_linux:8::baseos | All versions | 0:3.6.8-72.el8_10 |
python3-test Red Hat:enterprise_linux:8::baseos | All versions | 0:3.6.8-72.el8_10 |
python-unversioned-command Red Hat:enterprise_linux:9::appstream | All versions | 0:3.9.25-3.el9_7 |
python3-devel Red Hat:enterprise_linux:9::appstream | All versions | 0:3.9.25-3.el9_7 |
python3-tkinter Red Hat:enterprise_linux:9::appstream | All versions | 0:3.9.25-3.el9_7 |
python3.9-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 0:3.9.25-3.el9_7 |
python3.9-debugsource Red Hat:enterprise_linux:9::appstream | All versions | 0:3.9.25-3.el9_7 |
python3 Red Hat:enterprise_linux:9::baseos | All versions | 0:3.9.25-3.el9_7 |
python3-libs Red Hat:enterprise_linux:9::baseos | All versions | 0:3.9.25-3.el9_7 |
python3.9 Red Hat:enterprise_linux:9::baseos | All versions | 0:3.9.25-3.el9_7 |
Products include Python Python.
How do I fix CVE-2025-12084?
Upgrade libpython to a fixed version for your release line: 3.10.20, 3.11.15, 3.12.13 or 3.13.11.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2025-12084 being exploited?
There is no known exploitation of CVE-2025-12084 in the wild and no public exploit code.
Other vulnerabilities in Python Python
Sources
Also known as ALSA-2026:1478, ALSA-2026:1631, AZL-109680, AZL-71441, AZL-71450, BELL-CVE-2025-12084 and 42 more.