Skip to main content
← All vulnerabilities
CVE-2026-82397PYSEC-2026-3928GHSA-MPF4-983Q-P7J4

Tornado: Urlencoded body parsing omits max_num_fields, so one request can stall the event loop

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

Summary

Tornado is a Python web framework and asynchronous networking library. Prior to 6.5.8, Tornado parses application/x-www-form-urlencoded request bodies with urllib.parse.parse_qs in tornado/escape.py without passing max_num_fields. RequestHandler._execute in tornado/web.py parses the body before handler dispatch through HTTPServerRequest._parse_body and parse_body_arguments in tornado/httputil.py, so an unauthenticated request body containing millions of separator-delimited fields can synchronously stall the single-threaded event loop and delay every connection. The body is bounded only by max_buffer_size, which defaults to 104857600 bytes. This issue is fixed in version 6.5.8.

Timeline

  1. CVE published
  2. CISA SSVC assessment

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

  3. Record last updated

Affected versions

  • tornadoweb tornado

    fixed in 6.5.8

  • tornadoPyPI

    fixed in 6.5.8

References 4

GitHub · tornadoweb/tornado