Vulnerability GHSA-r4j5-9xpp-3985

Medium Risk
MEDIUM RISK
CVSS Score: 5.3
Score Range: 4.0–6.9
Medium severity vulnerabilities (CVSS 4.0–6.9). Important issues that meaningfully reduce security confidence.
16 days ago
October 28, 2026 at 10:43 PM UTC
Tornado: Event loop blocking and excess memory use from chunked bodies with many small chunks
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1

Summary

Tornado: Event loop blocking and excess memory use from chunked bodies with many small chunks

Details

Summary

When Tornado reads an HTTP/1.1 body that uses chunked transfer encoding, it processes all chunks that have already arrived without yielding to the event loop. A client can send a body made of millions of 1-byte chunks, which blocks the event loop (and therefore every other connection served by that process) for the entire time it takes to parse the body. A body near the default max_body_size of 100 MB can block the process for close to a minute, and the attacker can repeat or parallelize these requests.

Bodies made of tiny chunks also consumed far more memory than their size: a handler that does not use @stream_request_body stored each chunk as a separate object, using roughly 20 times as much memory as the bytes received.

Impact

All Tornado HTTP servers are affected when they receive a request body for a handler that reads it, which includes any handler that does not reject the request before the body is read. No authentication is required. Lowering max_body_size reduces the maximum blocking time and memory use for each request but does not remove the issue.

SimpleAsyncHTTPClient is affected in the same way when it reads a response from a malicious server.

Patches

Fixed in Tornado 6.6. Tornado now yields to the event loop periodically while reading any body, combines small chunks before passing them to data_received, and stores non-streaming bodies more compactly.

Applications using @stream_request_body should note that the pieces passed to data_received no longer correspond to HTTP chunk boundaries.

Workarounds

  • Run Tornado behind a reverse proxy that buffers request bodies and forwards them with a Content-Length header instead of chunked encoding.
  • Lower max_body_size (for the whole server or for individual handlers) to limit the impact of each request.

Credit

Reported by uttej-badwane.

Related Vulnerabilities

Other vulnerabilities affecting the same packages

Low Risk
4 hours ago
Tornado: Open redirect via triple-slash redirect paths
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 and 6.6 GHSA-5cjw-f85j-cv6r
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 and 6.6 GHSA-5cjw-f85j-cv6r
Low Risk
16 days ago
Tornado: Open redirect in RedirectHandler via protocol-relative URLs
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-pw9p-v7r6-gx4p
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-pw9p-v7r6-gx4p
Medium Risk
16 days ago
Tornado: Quadratic CPU usage when parsing HTTP headers with line folding
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-pcg2-g6cj-q92c
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-pcg2-g6cj-q92c
Medium Risk
1 month ago
Tornado: Unbounded query-string argument count allows event-loop-stalling DoS
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-3hv7-mjh2-fv65
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-3hv7-mjh2-fv65
High Risk
1 month ago
tornado: CurlAsyncHTTPClient enforces no response-size limit — decompression bomb drives unbounded memory accumulation to OOM
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-chx6-46f5-w4vp
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-chx6-46f5-w4vp
View all vulnerabilities for these packages

Impacted packages

Timeline

Published
16 days ago
October 28, 2026 at 10:43 PM UTC
Fixed (6.6)
23 days ago
October 21, 2026 at 03:30 PM UTC
Last Modified
16 days ago
October 28, 2026 at 11:00 PM UTC