Improper resource allocation In tornado
Description
Tornado: Quadratic DoS via Crafted Multipart Parameters
Summary
The _parseparam function in Tornado's httputil.py is used to parse specific HTTP header values, such as those in multipart/form-data. This function uses an inefficient algorithm that repeatedly calls string.count() within a nested loop while processing quoted semicolons (e.g., param=";").
As a result, 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, leading to a Denial of Service (DoS).
Severity: High
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Component | Affected version | Patched versions |
|---|---|---|---|
debian 14 | 6.5.4-0.1 | ||
rpm rhel10 | - | - | |
rpm rhel9 | - | - | |
rpm rhel10 | - | - | |
debian 12 | 6.2.0-3+deb12u4 | ||
debian 13 | 6.4.2-3+deb13u2 | ||
rpm rhel9 | - | - | |
rpm rhel8.4 | 0:0.10.8-1.el8_4.10 | ||
rpm rhel8 | 0:0.10.18-2.el8_10.8 | ||
rpm rhel9 | - | - |
1-10 of 11
10
Aliases
References