CVE-2025-67724: Tornado vulnerable to Header Injection and XSS via reason argument
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.setstatus 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.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2025-67724?
CVE-2025-67724 has a high severity rating due to the risk of header injection and XSS vulnerabilities.
How do I fix CVE-2025-67724?
To fix CVE-2025-67724, upgrade to Tornado version 6.5.3 or later.
What systems are affected by CVE-2025-67724?
CVE-2025-67724 affects Tornado versions 6.5.2 and below.
What types of vulnerabilities are present in CVE-2025-67724?
CVE-2025-67724 includes header injection vulnerabilities and potential XSS in the default error page.
Is there a workaround for CVE-2025-67724?
There is no official workaround recommended; the best protection is to upgrade to a secure version.