GitHub Advisoryadvisory · PyPI
GHSA-pcg2-g6cj-q92c Tornado: Quadratic CPU usage when parsing HTTP headers with line folding
MEDIUM
Official page ↗
- Aliases
- CVE-2026-116577
- Ecosystem
- PyPI
- Packages
- tornado
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Weaknesses
- CWE-407, CWE-770
- Reviewed
- 2026-10-28
Affected packages
• PyPI tornado: < 6.6 → fixed in 6.6
Description
Summary
Tornado's HTTP header parser takes quadratic time (O(n²)) when a header value is continued across many "obsolete line folding" (obs-fold) lines. An unauthenticated attacker can send a request whose header block is mostly short continuation lines. Parsing it uses a large amount of CPU on the IOLoop thread and blocks every other connection that process is serving.
This issue is closely related to CVE-2025-67725 (GHSA-c98p-7wgm-6p64). The fix for that advisory covered repeated headers but not line-folded continuations.
Impact
All Tornado HTTP servers are affected. Header parsing runs before any application code, so no authentication or particular handler is required.
How bad it gets depends on `max_header_size`:
• Default (64 KB): each malicious request blocks the event loop for tens of milliseconds. Repeated requests can degrade service.
• Raised `max_header_size`: the cost grows with the square of the header size. A single 1 MB request can block the process for several seconds.
Only availability is affected. Confidentiality and integrity are not.
Patches
Fixed in Tornado 6.6 by removing support for obsolete line folding completely; header lines that begin with whitespace are now rejected.
Workarounds
• Keep `max_header_size` at its default value or lower it. This limits the impact but doesn't remove it.
• Run Tornado behind a reverse proxy that rejects or normalizes obsolete line folding before forwarding requests.
Credit
Reported by @manus-pi.
Related
Alias · CVE (1)
- CVE-2026-116577 Tornado is a Python web framework and asynchronous networking library. vulnerability
References
- https://github.com/tornadoweb/tornado/security/advisories/GHSA-pcg2-g6cj-q92c web
- https://nvd.nist.gov/vuln/detail/CVE-2026-116577 advisory
- https://github.com/tornadoweb/tornado/pull/3765 web
- https://github.com/tornadoweb/tornado/commit/1b7a1dc9f340f52de929852e8125aa12f25297c9 web
- https://github.com/tornadoweb/tornado package
- https://github.com/tornadoweb/tornado/releases/tag/v6.6.0 web