CVE-2025-67726

Tornado is Vulnerable to Quadratic DoS via Crafted Multipart Parameters

Published Dec 12, 2025 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
Tornado is a Python web framework and asynchronous networking library. Versions 6.5.2 and below use an inefficient algorithm when parsing parameters for HTTP header values, potentially causing a DoS. The _parseparam function in httputil.py is used to parse specific HTTP header values, such as those in multipart/form-data and repeatedly calls string.count() within a nested loop while processing quoted semicolons. If an attacker sends a request with a large number of maliciously crafted parameters in a Content-Disposition header, the server's CPU usage increases quadratically (O(n²)) during parsing. Due to Tornado's single event loop architecture, a single malicious request can cause the entire server to become unresponsive for an extended period. This issue is fixed in version 6.5.3.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4461-1 python-tornado security update
Debian DSA Debian DSA DSA-6195-1 python-tornado security update
Github GHSA Github GHSA GHSA-jhmp-mqwm-3gq8 Tornado: Quadratic DoS via Crafted Multipart Parameters
Ubuntu USN Ubuntu USN USN-7950-1 Tornado vulnerabilities
History
Type Values Removed Values Added
CPEs cpe:2.3:a:tornadoweb:tornado:*:*:*:*:*:*:*:*
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Tornadoweb
Tornadoweb tornado
Vendors & Products Tornadoweb
Tornadoweb tornado
Type Values Removed Values Added
Description Tornado is a Python web framework and asynchronous networking library. Versions 6.5.2 and below use an inefficient algorithm when parsing parameters for HTTP header values, potentially causing a DoS. The _parseparam function in httputil.py is used to parse specific HTTP header values, such as those in multipart/form-data and repeatedly calls string.count() within a nested loop while processing quoted semicolons. If an attacker sends a request with a large number of maliciously crafted parameters in a Content-Disposition header, the server's CPU usage increases quadratically (O(n²)) during parsing. Due to Tornado's single event loop architecture, a single malicious request can cause the entire server to become unresponsive for an extended period. This issue is fixed in version 6.5.3.
Title Tornado is Vulnerable to Quadratic DoS via Crafted Multipart Parameters
Weaknesses CWE-400
CWE-834
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Dec 18, 2025, 6:48 PM
Reserved
Dec 10, 2025, 7:25 PM
Status
Analyzed
Published
Dec 12, 2025, 7:15 AM
Modified
Oct 7, 2026, 8:10 PM
Severity
Moderate
Public date
Dec 12, 2025, 6:13 AM