[ CVE-2026-115927 · Published 26 Oct 2026 ]
Tornado: Event loop blocking and excess memory use from chunked bodies with many small chunks
[ Description ]Official description
Tornado is a Python web framework and asynchronous networking library. Prior to 6.6.0, Tornado decodes HTTP/1.1 chunked transfer encoding by processing body data that has already arrived without yielding to the event loop. A remote unauthenticated peer can send millions of one-byte chunks to monopolize the process event loop and stall every other connection served by that process, while lowering max_body_size only limits the duration of each request. For handlers that do not use @stream_request_body, retaining each chunk as a separate object can consume roughly twenty times the received body size, and SimpleAsyncHTTPClient has the same event-loop behavior when reading a response from a malicious server. This issue is fixed in version 6.6.0.
[ Fixes ]Fixes and patches
- tornado 6.6Fixed version · GitHub Advisories · pip package tornado: upgrade to 6.6 or later (affected < 6.6)
[ Packages ]Affected open-source packages
- tornado pipAffected < 6.6 · fixed in 6.6 · GHSA-r4j5-9xpp-3985