What’s Vulnerable › Vulnerabilities
CVE-2026-82397: Tornado: Urlencoded body parsing omits max_num_fields, so one request can stall the event loop
- Severity: high (CVSS 7.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-08-31 · updated 2026-09-09
- Weakness: CWE-400
Description
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.
Affected products
- Pypi Tornado: before 6.5.8; 0.2, 1.0, 1.1, 1.1.1, 1.2, 1.2.1 (+77) — fixed in 6.5.8
- tornadoweb tornado: before 6.5.8
How to fix
Upgrade to a fixed version: Pypi Tornado 6.5.8. Check the vendor advisory for mitigations.
References
- https://github.com/tornadoweb/tornado/commit/8d6363ed7b69d5f0da806efe34d256627a2191de
- https://github.com/tornadoweb/tornado/pull/3704
- https://github.com/tornadoweb/tornado/releases/tag/v6.5.8
- https://github.com/tornadoweb/tornado/security/advisories/GHSA-mpf4-983q-p7j4
Get alerted when CVE-2026-82397 or the next vulnerability affects your stack