CVE-2025-13836 Excessive read buffering DoS in http.client
A malicious server can cause a Python HTTP client to exhaust memory by sending large responses, leading to denial of service.
- 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-13836?
CVE-2025-13836 is a medium-severity denial of service vulnerability in Python Python, published on 1 Dec 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
When reading an HTTP response from a server, if no read amount is specified, the default behavior will be to use Content-Length. This allows a malicious server to cause the client to read large amounts of data into memory, potentially causing OOM or other DoS.
Weakness: CWE-400
Which versions are affected by CVE-2025-13836?
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.1 |
python Bitnami | All versions | 3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.1 |
python-min Bitnami | All versions | 3.10.20, 3.11.15, 3.12.13, 3.13.11, 3.14.1 |
Linux distribution packages (37)
python3.12 AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-debug AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-devel AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-idle AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-libs AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-rpm-macros AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-test AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12-tkinter AlmaLinux:8 | All versions | 3.12.12-2.el8_10 |
python3.12 Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12-debuginfo Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12-debugsource Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12-devel Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12-libs Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12-rpm-macros Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12-tkinter Red Hat:enterprise_linux:8::appstream | All versions | 0:3.12.12-2.el8_10 |
python3.12 Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12-debug Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12-debuginfo Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12-debugsource Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12-idle Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12-test Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12-tkinter Red Hat:enterprise_linux:8::crb | All versions | 0:3.12.12-2.el8_10 |
python3.12 Red Hat:rhel_eus:9.4::appstream | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-debuginfo Red Hat:rhel_eus:9.4::appstream | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-debugsource Red Hat:rhel_eus:9.4::appstream | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-devel Red Hat:rhel_eus:9.4::appstream | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-libs Red Hat:rhel_eus:9.4::appstream | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-tkinter Red Hat:rhel_eus:9.4::appstream | All versions | 0:3.12.1-4.el9_4.10 |
python3.12 Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-debug Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-debuginfo Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-debugsource Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-idle Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-test Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12-tkinter Red Hat:rhel_eus:9.4::crb | All versions | 0:3.12.1-4.el9_4.10 |
python3.12 Red Hat:rhel_eus:9.6::appstream | All versions | 0:3.12.9-1.el9_6.5 |
python3.12-debuginfo Red Hat:rhel_eus:9.6::appstream | All versions | 0:3.12.9-1.el9_6.5 |
Products include Python Python.
How do I fix CVE-2025-13836?
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-13836 being exploited?
There is no known exploitation of CVE-2025-13836 in the wild and no public exploit code.
Other vulnerabilities in Python Python
Sources
Also known as ALSA-2026:2419, AZL-109689, AZL-71264, BELL-CVE-2025-13836, BIT-libpython-2025-13836, BIT-python-2025-13836 and 18 more.