Skip to main content
← All vulnerabilities
CVE-2026-115927EUVD-2026-110077GHSA-R4J5-9XPP-3985

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.6.0, 6.6
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

Tornado, the Python web framework and asynchronous networking library, is affected, along with its HTTP client when it reads responses from a malicious server. A remote attacker can send many tiny chunked-encoding pieces to block the event loop, stalling all other connections in that process, and can cause excessive memory use.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original 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.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  4. Record last updated

Affected versions

  • tornadoweb tornado

    fixed in 6.6.0

  • tornadoPyPI

    fixed in 6.6

References 4

GitHub · tornadoweb/tornado