Cyber Resilience

CVE-2026-31958

DoS in Tornadoweb Tornado ≤ 6.5.5

Published
11 March 2026
Modified
01 April 2026
Patch / advisory
CVSS Score v4 8.7
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0037 30th percentile
Risk Priority 44 floored blend · peak EPSS

Summary

CVE-2026-31958 is a high-severity Uncontrolled Resource Consumption (CWE-400) vulnerability in Tornadoweb Tornado. Its CVSS base score is 8.7 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique OS Exhaustion Flood (T1499.001); ranked at the 30th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to SC-5 (Denial-of-service Protection) and SC-6 (Resource Availability) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-31958 is a denial-of-service vulnerability in Tornado, a Python web framework and asynchronous networking library, affecting versions prior to 6.5.5. The issue arises because there is no dedicated limit on the number of parts in multipart/form-data requests beyond the max_body_size setting, which defaults to 100MB. Parsing of these multipart bodies occurs synchronously on the main thread, resulting in high computational costs when processing large bodies with many parts, as documented in CWE-400 (Uncontrolled Resource Consumption).

The vulnerability carries a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), indicating it is exploitable remotely over the network by unauthenticated attackers with low complexity and no user interaction. An attacker can send a crafted multipart/form-data request containing numerous parts while staying within the body size limit, forcing the server to expend excessive resources on synchronous parsing and causing denial of service through CPU exhaustion on the main thread.

Tornado version 6.5.5 resolves this vulnerability. Security advisories recommend upgrading to 6.5.5 or later. Key references include the GitHub security advisory at https://github.com/tornadoweb/tornado/security/advisories/GHSA-qjxf-f2mg-c6mc and the Debian LTS announcement at https://lists.debian.org/debian-lts-announce/2026/04/msg00000.html.

EU & UK References

Vulnerability Data

Tornado is a Python web framework and asynchronous networking library. In versions of Tornado prior to 6.5.5, the only limit on the number of parts in multipart/form-data is the max_body_size setting (default 100MB). Since parsing occurs synchronously on the main…

more

thread, this creates the possibility of denial-of-service due to the cost of parsing very large multipart bodies with many parts. This vulnerability is fixed in 6.5.5.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1499.001 OS Exhaustion Flood Impact
Adversaries may launch a denial of service (DoS) attack targeting an endpoint's operating system (OS).
T1498 Network Denial of Service Impact
Adversaries may perform Network Denial of Service (DoS) attacks to degrade or block the availability of targeted resources to users.
T1499 Endpoint Denial of Service Impact
Adversaries may perform Endpoint Denial of Service (DoS) attacks to degrade or block the availability of services to users.
T1499.002 Service Exhaustion Flood Impact
Adversaries may target the different network services provided by systems to conduct a denial of service (DoS).
T1499.003 Application Exhaustion Flood Impact
Adversaries may target resource intensive features of applications to cause a denial of service (DoS), denying availability to those applications.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2025-67725Same product: Tornadoweb Tornado
CVE-2025-67726Same product: Tornadoweb Tornado
CVE-2024-52804Same product: Tornadoweb Tornado
CVE-2023-28370Same product: Tornadoweb Tornado
CVE-2025-67724Same product: Tornadoweb Tornado
CVE-2026-35536Same product: Tornadoweb Tornado
CVE-2025-47287Same product: Tornadoweb Tornado
CVE-2023-52425Shared CWE-400
CVE-2024-20716Shared CWE-400
CVE-2025-9341Shared CWE-400

Affected Assets

tornadoweb
tornado
≤ 6.5.5

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

SC-5 directly limits the effects of resource-exhaustion events that constitute uncontrolled consumption.

SC-6 enforces explicit allocation limits on resources, structurally preventing the weakness from occurring.

Process isolation confines resource consumption to separate domains, reducing blast radius without stopping the root flaw.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.IR-04 mostly match
prevents

Explicitly requires monitoring and maintaining resource capacity, directly addressing uncontrolled consumption to preserve availability.

DE.CM-09 partial match
prevents

Continuous monitoring of computing resources can detect resource exhaustion but does not itself enforce allocation limits.

PR.IR-03 partial match
prevents

Resilience mechanisms such as avoiding single points of failure indirectly reduce impact of resource exhaustion.

PR.PS-01 partial match
prevents

Hardened configuration baselines can include resource quotas and limits that constrain consumption.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Resource-utilization monitoring and alerting on bottlenecks or overloads limits the impact of denial-of-service or resource-exhaustion attacks.

prevents

By continuously monitoring utilization, stress-testing peak loads, and maintaining documented plans to scale or throttle resources, the control directly limits an attacker’s ability to drive a system into uncontrolled resource exhaustion.

finds

Pre-agreed severity-based prioritization and resource allocation during incident triage reduce the likelihood that an attacker-induced resource exhaustion will overwhelm the organization before corrective action is taken.

mitigates

Business-continuity plans that include resource-management controls reduce the likelihood that an attacker can trigger uncontrolled resource consumption by forcing the system into a degraded or fallback state.

mitigates

Defining RTOs and capacity requirements for ICT services during business-impact analysis forces organizations to provision sufficient resources and throttling mechanisms, reducing the likelihood that an attacker can induce denial-of-service through uncontrolled resource consumption.

finds

Early notification of anomalous resource consumption or system malfunctions enables throttling or isolation before availability is lost.

References