Skip to main content
← All vulnerabilities
CVE-2025-67724PYSEC-2025-265GHSA-PR2V-JX2C-WG9F

Tornado vulnerable to Header Injection and XSS via reason argument

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.5.3
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • tornadoweb tornado

    fixed in 6.5.3

  • tornadoPyPI

    fixed in 6.5.3

References 3

GitHub · tornadoweb/tornado