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

Published Aug 31, 2026
·
Updated

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.parseqs in tornado/escape.py without passing maxnumfields. RequestHandler.execute in tornado/web.py parses the body before handler dispatch through HTTPServerRequest.parsebody and parsebodyarguments 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 maxbuffersize, which defaults to 104857600 bytes. This issue is fixed in version 6.5.8.

Affected Software

2 affected components
Tornado Tornado<6.5.8
Tornado Tornado=6.5.8

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade tornado to a version that resolves this vulnerability.

    Fixed in 6.5.8

Event History

Aug 31, 2026
CVE Published
via MITRE·09:28 PM
Data Sourced
via MITRE·09:28 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this denial-of-service condition?

Tornado deployments running versions prior to 6.5.8 are affected when they accept application/x-www-form-urlencoded request bodies. The issue occurs before handler dispatch, so endpoints do not need to explicitly parse form data for the event loop to be stalled.

2

What does an attacker need to exploit it?

An attacker needs only network access to send an unauthenticated HTTP request with a URL-encoded body containing millions of separator-delimited fields. No privileges or user interaction are required.

3

Are default settings sufficient to limit the impact?

No. The request body is limited by max_buffer_size, but its default is 104857600 bytes, which can still accommodate enough fields to synchronously stall the single-threaded event loop and delay all connections.

4

How can this be remediated?

Upgrade Tornado to version 6.5.8, which fixes the missing max_num_fields limit during URL-encoded body parsing.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203