CVE-2025-12084 Quadratic complexity in node ID cache clearing

Medium 6.3 Published Updated

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.

PackageAffectedFixed in
libpython BitnamiAll versions3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.2
python BitnamiAll versions3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.2
python-min BitnamiAll versions3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.2
Linux distribution packages (37)
platform-python AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
platform-python-debug AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
platform-python-devel AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
python3-idle AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
python3-libs AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
python3-test AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
python3-tkinter AlmaLinux:8All versions3.6.8-72.el8_10.alma.1
python-unversioned-command AlmaLinux:9All versions3.9.25-3.el9_7
python3 AlmaLinux:9All versions3.9.25-3.el9_7
python3-debug AlmaLinux:9All versions3.9.25-3.el9_7
python3-devel AlmaLinux:9All versions3.9.25-3.el9_7
python3-idle AlmaLinux:9All versions3.9.25-3.el9_7
python3-libs AlmaLinux:9All versions3.9.25-3.el9_7
python3-test AlmaLinux:9All versions3.9.25-3.el9_7
python3-tkinter AlmaLinux:9All versions3.9.25-3.el9_7
platform-python Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
platform-python-debug Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
platform-python-devel Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
python3-debuginfo Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
python3-debugsource Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
python3-idle Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
python3-test Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
python3-tkinter Red Hat:enterprise_linux:8::appstreamAll versions0:3.6.8-72.el8_10
platform-python Red Hat:enterprise_linux:8::baseosAll versions0:3.6.8-72.el8_10
python3 Red Hat:enterprise_linux:8::baseosAll versions0:3.6.8-72.el8_10
python3-debuginfo Red Hat:enterprise_linux:8::baseosAll versions0:3.6.8-72.el8_10
python3-debugsource Red Hat:enterprise_linux:8::baseosAll versions0:3.6.8-72.el8_10
python3-libs Red Hat:enterprise_linux:8::baseosAll versions0:3.6.8-72.el8_10
python3-test Red Hat:enterprise_linux:8::baseosAll versions0:3.6.8-72.el8_10
python-unversioned-command Red Hat:enterprise_linux:9::appstreamAll versions0:3.9.25-3.el9_7
python3-devel Red Hat:enterprise_linux:9::appstreamAll versions0:3.9.25-3.el9_7
python3-tkinter Red Hat:enterprise_linux:9::appstreamAll versions0:3.9.25-3.el9_7
python3.9-debuginfo Red Hat:enterprise_linux:9::appstreamAll versions0:3.9.25-3.el9_7
python3.9-debugsource Red Hat:enterprise_linux:9::appstreamAll versions0:3.9.25-3.el9_7
python3 Red Hat:enterprise_linux:9::baseosAll versions0:3.9.25-3.el9_7
python3-libs Red Hat:enterprise_linux:9::baseosAll versions0:3.9.25-3.el9_7
python3.9 Red Hat:enterprise_linux:9::baseosAll versions0: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.

All Python Python vulnerabilities

Sources

Also known as ALSA-2026:1478, ALSA-2026:1631, AZL-109680, AZL-71441, AZL-71450, BELL-CVE-2025-12084 and 42 more.

Is CVE-2025-12084 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free