CVE-2026-6879 Quadratic Behavior in xml.etree.ElementPath Index Predicates
Attackers can cause denial of service in Python applications by crafting XML documents that trigger quadratic time complexity in ElementPath index predicates.
- Exploited in the wild
- Not known
- Login needed
- An administrator
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-6879?
CVE-2026-6879 is a low-severity denial of service vulnerability in CPython, published on 28 Jul 2026. An attacker needs administrator access to exploit it, and only if a user opens a file or follows a link.
Official description
`Element.findall()` and fully-consumed `Element.iterfind()` exhibit `O(n^2)` time complexity when using XPath index predicates (e.g. `[1]`, `[last()]`, `[last()-N]`) on XML documents with many same-tag siblings. `Element.find()` is only affected when the first match is near the end of the sibling list, such as with `[last()]` or `[last()-N]`; `.//item[1]` short-circuits after the first match.
Weakness: CWE-407
Which versions are affected by CVE-2026-6879?
3 open source packages ship an affected version, including libpython, python and python-min.
| Package | Affected | Fixed in |
|---|---|---|
libpython Bitnami | All versions | 3.10.21, 3.11.16, 3.12.14, 3.13.15, 3.14.7 |
python Bitnami | All versions | 3.10.21, 3.11.16, 3.12.14, 3.13.15, 3.14.7 |
python-min Bitnami | All versions | 3.10.21, 3.11.16, 3.12.14, 3.13.15, 3.14.7 |
Linux distribution packages (37)
python-unversioned-command Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3 Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3-debug Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3-devel Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3-idle Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3-libs Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3-test Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3-tkinter Red Hat:hummingbird:1 | All versions | 0:3.14.6-2.2.hum1 |
python3.10 Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.10-debug Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.10-devel Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.10-idle Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.10-libs Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.10-test Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.10-tkinter Red Hat:hummingbird:1 | All versions | 0:3.10.20-3.2.hum1 |
python3.11 Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.11-debug Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.11-devel Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.11-idle Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.11-libs Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.11-test Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.11-tkinter Red Hat:hummingbird:1 | All versions | 0:3.11.15-5.5.hum1 |
python3.12 Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.12-debug Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.12-devel Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.12-idle Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.12-libs Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.12-test Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.12-tkinter Red Hat:hummingbird:1 | All versions | 0:3.12.13-3.8.hum1 |
python3.13 Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-debug Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-devel Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-freethreading Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-freethreading-debug Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-idle Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-libs Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
python3.13-test Red Hat:hummingbird:1 | All versions | 0:3.13.14-1.7.hum1 |
How do I fix CVE-2026-6879?
Upgrade libpython to a fixed version for your release line: 3.10.21, 3.11.16, 3.12.14 or 3.13.15.
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-2026-6879 being exploited?
There is no known exploitation of CVE-2026-6879 in the wild and no public exploit code.
Sources
Also known as ALPINE-CVE-2026-6879, AZL-94157, AZL-94299, BELL-CVE-2026-6879, BIT-libpython-2026-6879, BIT-python-2026-6879 and 20 more.