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.
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:
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.
Fixed in Tornado 6.6 by removing support for obsolete line folding completely; header lines that begin with whitespace are now rejected.
max_header_size at its default value or lower it. This limits the impact but doesn't remove it.Reported by @manus-pi.
{
"cwe_ids": [
"CWE-407",
"CWE-770"
],
"github_reviewed": true,
"github_reviewed_at": "2026-10-28T22:43:41Z",
"nvd_published_at": "2026-10-26T21:18:14Z",
"severity": "MODERATE"
}