CVE-2026-82397: CWE-400: Uncontrolled Resource Consumption in tornadoweb tornado
Description
CVE-2026-82397 is a denial of service vulnerability in Tornado web framework versions prior to 6.5.8. It arises because Tornado parses application/x-www-form-urlencoded request bodies using urllib.parse.parse_qs without limiting the maximum number of fields. An attacker can send a large request body composed mostly of separators, causing the parser to generate tens of millions of fields synchronously on the event loop, stalling the entire server process. This vulnerability requires no authentication and affects any route accepting form posts.
CVSS v3.1
Score 7.5high
Affected software
tornadoweb
tornado
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Tornado's request body parsing for application/x-www-form-urlencoded data uses urllib.parse.parse_qs without specifying the max_num_fields parameter, which was introduced in CPython to prevent excessive resource consumption. Because Tornado parses the body synchronously on the single-threaded event loop before dispatching to handlers, a crafted request with a large number of separators can cause the parser to generate tens of millions of fields, exhausting CPU resources and causing a denial of service affecting the entire server process. The default maximum request body size is 100 MB, which can contain around fifty million fields if composed mostly of separators. The vulnerability is present in Tornado versions before 6.5.8. The suggested fix is to pass a conservative max_num_fields limit to parse_qs and allow applications to raise it as needed. This would cause CPython to raise a ValueError when the limit is exceeded, which Tornado can map to a 400 Bad Request response.
Potential Impact
This vulnerability allows unauthenticated attackers to cause a denial of service against the entire Tornado server process by sending a single large, specially crafted form-urlencoded request. Because Tornado is single-threaded and the parsing occurs synchronously on the event loop, all other connections are stalled until parsing completes. This can disrupt availability of all services running on the Tornado server.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The suggested fix is to modify Tornado to pass the max_num_fields parameter to urllib.parse.parse_qs with a conservative default limit, causing excessive requests to be rejected with a 400 error. Additionally, lowering the maximum allowed request body size specifically for urlencoded content would help mitigate the risk. Until a patch is available, consider implementing application-level request size limits and monitoring for unusually large form submissions.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-08-28T22:00:43.512Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6a95f425acd9273b499e76fd
Added to database: 08/31/2026, 21:37:41 UTC
Last enriched: 10/04/2026, 21:19:53 UTC
Last updated: 10/15/2026, 18:48:24 UTC
Views: 91
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.