Quick answers
- Is CVE-2025-67726 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2025-67726 being exploited in the wild.
- How severe is CVE-2025-67726?
- High severity, with a CVSS score of 7.5, published 12 December 2025.
- Which products and versions are affected?
- tornado (PyPI) < 6.5.3, ECOSYSTEM:introduced=0,fixed=6.5.3.
- Is there a fix for CVE-2025-67726?
- Yes. tornado (PyPI): upgrade to 6.5.3 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2025-67726 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2025-67726?
- Check whether you run tornado (PyPI) or Tornadoweb Tornado at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- tornado (PyPI): upgrade to 6.5.3 or later
pip install "tornado>=6.5.3"
Technical details
The _parseparam function in Tornado's httputil.py, used for parsing HTTP header values like multipart/form-data, contains an inefficient algorithm. Specifically, it repeatedly calls string.count() within a nested loop when processing quoted semicolons. An attacker can exploit this by sending a Content-Disposition header with a large number of crafted parameters, leading to O(n²) CPU consumption. Due to Tornado's single-threaded event loop architecture, this quadratic complexity results in a complete Denial of Service (DoS) as the event loop becomes blocked. This issue is fixed in version 6.5.3.
Affected products
- TornadoWeb Tornado < 6.5.3
Identifiers
- CVE-2025-67726
- GHSA-jhmp-mqwm-3gq8
- PYSEC-2025-267
Timeline
- 2025-12-11: disclosed: Initial disclosure and patch release
- 2025-12-12: advisory: NVD publication
- 2026-07-20: advisory: GitHub Advisory reviewed and updated