CVE-2025-67724: tornadoweb tornado · Cross-site Scripting
Affects tornadoweb tornadoSource CVE Database V5
Not known to be exploited · CVSS 5.4 Medium : upgrade to 6.5.3 when convenient.
Data as of 25 Oct 2026, 19:02 UTC
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 14% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 6.5.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 12 Dec 2025
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 2026-10-25.
What to do
Upgrade tornadoweb tornado to 6.5.3.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
PyPItornadopkg:pypi/tornadoOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
European organizations should immediately upgrade all Tornado deployments to version 6.5.3 or later to ensure the vulnerability is patched. For applications where immediate upgrade is not feasible, implement strict input validation and sanitization on any user-supplied data that could be passed to the 'reason' parameter, ensuring that it does not contain HTML or JavaScript code. Employ Content Security Policy (CSP) headers to restrict the execution of unauthorized scripts in browsers. Review and harden HTTP header handling to prevent header injection and response splitting attacks. Conduct thorough security testing, including automated scanning and manual code reviews, focusing on error handling and status code generation paths. Educate developers about safe usage of Tornado's set_status and HTTPError methods to avoid passing untrusted data directly. Monitor web application logs for suspicious requests containing unusual reason phrases. Finally, maintain an incident response plan to quickly address any detected exploitation attempts.
Description
Tornado is a Python web framework and asynchronous networking library. In versions 6.5.2 and below, the supplied reason phrase is used unescaped in HTTP headers (where it could be used for header injection) or in HTML in the default error page (where it could be used for XSS) and can be exploited by passing untrusted or malicious data into the reason argument. Used by both RequestHandler.set_status and tornado.web.HTTPError, the argument is designed to allow applications to pass custom "reason" phrases (the "Not Found" in HTTP/1.1 404 Not Found) to the HTTP status line (mainly for non-standard status codes). This issue is fixed in version 6.5.3.