Skip to main content
CVE Vulnerability Database

CVE-2025-6069: HTMLParser DoS Vulnerability

CVE-2025-6069 is a denial-of-service flaw in html.parser.HTMLParser caused by quadratic complexity when processing malformed inputs. This post covers technical details, affected versions, impact, and mitigation.

Updated:

CVE-2025-6069 Overview

CVE-2025-6069 is an Algorithmic Complexity Attack vulnerability in Python's html.parser.HTMLParser class. The parser exhibits worst-case quadratic complexity when processing certain crafted malformed HTML inputs, potentially leading to amplified denial-of-service conditions. This vulnerability allows remote attackers with limited privileges to cause resource exhaustion on systems processing untrusted HTML content.

Critical Impact

Applications using Python's built-in HTML parser to process user-supplied or untrusted HTML content are vulnerable to denial-of-service attacks through specially crafted malformed inputs that trigger quadratic time complexity.

Affected Products

  • Python CPython (multiple versions)
  • Applications using html.parser.HTMLParser class
  • Web applications processing untrusted HTML input

Discovery Timeline

  • 2025-06-17 - CVE CVE-2025-6069 published to NVD
  • 2025-07-07 - Last updated in NVD database

Technical Details for CVE-2025-6069

Vulnerability Analysis

The vulnerability resides in Python's standard library html.parser module, specifically within the HTMLParser class. When processing malformed HTML input with certain characteristics, the parser's algorithmic behavior degrades to O(n²) time complexity instead of the expected O(n) linear complexity. This algorithmic inefficiency can be exploited by attackers to cause significant CPU consumption and application slowdowns or hangs.

The issue is classified under CWE-1333 (Inefficient Regular Expression Complexity), indicating that the underlying cause likely involves regular expression operations or similar pattern matching within the HTML parsing logic that exhibits pathological behavior on adversarial inputs.

Root Cause

The root cause is inefficient algorithmic handling of malformed HTML constructs within the HTMLParser class. When the parser encounters specific sequences of malformed input characters, internal string processing or pattern matching operations iterate over the input in a manner that results in quadratic time complexity. This means doubling the input size quadruples the processing time, making it trivial for attackers to craft inputs that consume excessive CPU resources.

Attack Vector

An attacker can exploit this vulnerability by submitting specially crafted malformed HTML content to any application that uses Python's html.parser.HTMLParser to process untrusted input. The attack is network-accessible and requires low privileges (such as the ability to submit HTML content to a web form, API endpoint, or any service that parses HTML). No user interaction is required for exploitation.

The attack causes resource exhaustion on the target system, potentially leading to:

  • Application timeouts and hangs
  • Degraded performance for legitimate users
  • Service unavailability in severe cases

Since no verified code examples are available, the exploitation mechanism involves crafting malformed HTML with specific patterns that trigger the quadratic behavior in the parser's internal processing. For detailed technical information, refer to the GitHub Issue #135462 and the associated Pull Request #135464.

Detection Methods for CVE-2025-6069

Indicators of Compromise

  • Unusual CPU spikes when processing HTML content
  • Application threads stuck in HTML parsing operations for extended periods
  • Increased response times for endpoints that process HTML input
  • Memory and CPU exhaustion on servers handling HTML parsing

Detection Strategies

  • Monitor application performance metrics for anomalous CPU consumption during HTML parsing operations
  • Implement request timeout monitoring to detect parsing operations that exceed normal durations
  • Log and analyze request payloads that trigger long processing times in HTML parsing components
  • Use application performance monitoring (APM) tools to identify slow HTML parsing transactions

Monitoring Recommendations

  • Set up alerts for CPU utilization spikes correlated with HTML processing endpoints
  • Implement request size limits and parsing timeouts as defensive measures
  • Monitor Python process resource consumption for signs of algorithmic complexity attacks
  • Review logs for repeated requests with malformed HTML content from the same source

How to Mitigate CVE-2025-6069

Immediate Actions Required

  • Update Python to a patched version that includes the fix for this vulnerability
  • Implement input size limits on HTML content processed by affected applications
  • Add parsing timeouts to prevent long-running HTML parsing operations
  • Consider using alternative HTML parsing libraries (such as lxml or BeautifulSoup with lxml backend) for processing untrusted content

Patch Information

The Python Security Team has released patches across multiple Python versions. The fix addresses the algorithmic complexity issue in the HTMLParser class. Multiple commits have been applied to various Python branches:

For complete information, refer to the Python Security Announcement.

Workarounds

  • Implement strict input validation and size limits on HTML content before parsing
  • Use parsing timeouts to abort operations that exceed reasonable duration thresholds
  • Consider alternative HTML parsing libraries that are not affected by this vulnerability
  • Deploy rate limiting on endpoints that process HTML content to reduce attack impact
bash
# Configuration example - Set resource limits for Python processes
# Add to your application startup or systemd service file

# Limit CPU time for Python process (in seconds)
ulimit -t 300

# Implement timeout wrapper for HTML parsing in your application
# Example using Python's signal module to enforce parsing timeout
# timeout --signal=SIGKILL 30 python your_html_processor.py

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.