Python disclosed CVE-2026-15308, a high-severity denial-of-service flaw in html.parser.HTMLParser that can drive CPU exhaustion when applications incrementally parse untrusted HTML containing repeated unterminated markup declarations. The bug stems from quadratic-time behavior in feed(), where small repeated chunks force expensive rescanning and buffer concatenation across malformed tags, comments, doctypes, CDATA sections, processing instructions, and RAWTEXT elements.
CPython maintainers shipped fixes and backports across supported branches including 3.10 through 3.15, with commits updating buffering logic to accumulate pending input more efficiently, defer reparsing until enough data arrives, adapt parsing thresholds based on parser progress, and flush buffered data on close(). The Python Software Foundation also updated the CVE record to clarify that affected versions are earlier than 3.15.0, not earlier than 3.16.0, while published metadata classifies the issue as CWE-400 and notes no known exploitation at the time of disclosure.

Mallory correlates global threat intelligence with your attack surface — know if you’re exposed before adversaries strike.
5 events from the most recent confirmed update back to the earliest known activity.
The Python Software Foundation updated the CVE-2026-15308 record and changed the affected versions from CPython releases earlier than 3.16.0 to releases earlier than 3.15.0. The update was reflected in the CVE metadata on July 9, 2026.
Python security personnel publicly announced CVE-2026-15308, a high-severity denial-of-service vulnerability in html.parser.HTMLParser caused by repeated unterminated markup declarations during incremental parsing. The notice linked the CVE entry and the associated CPython fix.
A dedicated commit for the Python 3.15 branch backported the HTMLParser fix for quadratic-time incremental parsing. The patch addressed denial-of-service risk from malformed unterminated constructs and included a regression test.
CPython published security fix commits for the HTMLParser incremental parsing bug that could cause CPU-exhaustion denial of service via repeated small chunks of unterminated markup. The fixes changed buffering and reparsing behavior and added regression tests to prevent quadratic-time parsing.
A CPython issue describing worst-case quadratic complexity in incremental HTMLParser parsing was opened by serhiy-storchaka. The issue referenced the primary fix work and indicated planned backports across maintained Python branches.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
7 references tracked. Mallory keeps watching after this page renders.
cvefeed.io
Open sourceseclists.org
Open sourcegithub.com
Open sourcegithub.com
Open sourcegithub.com
Open sourcegithub.com
Open sourcegithub.com
Open sourceMap indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.