CVE-2026-31958 Tornado has a DoS due to too many multipart parts

High 8.7 Published Updated

Attackers can cause denial of service in Tornado web framework by sending multipart requests with excessive parts, blocking the main thread.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-31958?

CVE-2026-31958 is a high-severity denial of service vulnerability in tornadoweb tornado, published on 11 Mar 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

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 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.

Weakness: CWE-400

Which versions are affected by CVE-2026-31958?

3 open source packages ship an affected version, including tornado. It affects 1 product.

PackageAffectedFixed in
tornado PyPIAll versions6.5.5
tornado PyPIAll versions6.5.5
tornado PyPIAll versions6.5.5
Linux distribution packages (37)
pcs AlmaLinux:8All versions0.10.18-2.el8_10.9.alma.1
pcs-snmp AlmaLinux:8All versions0.10.18-2.el8_10.9.alma.1
pcs Red Hat:enterprise_linux:8::highavailabilityAll versions0:0.10.18-2.el8_10.9
pcs-snmp Red Hat:enterprise_linux:8::highavailabilityAll versions0:0.10.18-2.el8_10.9
pcs Red Hat:enterprise_linux:8::resilientstorageAll versions0:0.10.18-2.el8_10.9
pcs-snmp Red Hat:enterprise_linux:8::resilientstorageAll versions0:0.10.18-2.el8_10.9
pcs Rocky Linux:8All versions0:0.10.18-2.el8_10.9
golang-github-lusitaniae-apache_exporter SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions1.0.10-90002.3.6.1
saltbundlepy SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions3.11.13-90002.4.9.1
saltbundlepy-core SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions3.11.13-90002.4.9.1
saltbundlepy-m2crypto SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions0.45.1-90002.3.9.2
saltbundlepy-pyzmq SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions25.1.2-90002.3.9.1
saltbundlepy-simplejson SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions3.19.1-90002.3.6.1
saltbundlepy-tornado SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions6.3.2-90002.4.6.2
spacecmd SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions5.1.13-90002.3.9.1
uyuni-tools SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions5.1.26-90002.3.9.1
venv-salt-minion SUSE:EL-9:Update:Products:MultiLinuxManagerTools:UpdateAll versions3006.0-90002.5.12.2
python-tornado SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOSAll versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSSAll versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOSAll versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSSAll versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise Micro 5.2All versions4.5.3-150000.3.19.1
python-tornado SUSE:Linux Enterprise Micro 5.3All versions4.5.3-150000.3.19.1
python-tornado SUSE:Linux Enterprise Micro 5.4All versions4.5.3-150000.3.19.1
python-tornado SUSE:Linux Enterprise Micro 5.5All versions4.5.3-150000.3.19.1
python-tornado SUSE:Linux Enterprise Module for Basesystem 15 SP7All versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise Module for Python 3 15 SP7All versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise Server 15 SP4-LTSSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise Server 15 SP4-LTSSAll versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise Server 15 SP5-LTSSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise Server 15 SP5-LTSSAll versions6.3.2-150400.9.15.1
python-tornado SUSE:Linux Enterprise Server 15 SP6-LTSSAll versions4.5.3-150000.3.19.1
python-tornado6 SUSE:Linux Enterprise Server 15 SP6-LTSSAll versions6.3.2-150400.9.15.1

Products include Tornadoweb Tornado.

How do I fix CVE-2026-31958?

Upgrade tornado to 6.5.5 or later.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2026-31958 being exploited?

There is no known exploitation of CVE-2026-31958 in the wild and no public exploit code.

Sources

Also known as ALSA-2026:8093, BELL-CVE-2026-31958, CLEANSTART-2026-KC70248, CLEANSTART-2026-TN75201, DEBIAN-CVE-2026-31958, ECHO-5939-f806-1836 and 34 more.

Is CVE-2026-31958 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free