Vulnerability · Published Dec 12, 2025 · Assigned by GitHub_M

CVE-2025-67724Tornado vulnerable to Header Injection and XSS via reason argument

Medium 5.4

In plain English

A medium-severity cross-site scripting in tornado from tornadoweb. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 15% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)5.4Medium
Exploit odds (30 days)0.2%top 84.8% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

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

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Alpine:v3.23py3-tornado6.5.4-r0ALPINE-CVE-2025-67724
Alpine:v3.24py3-tornado6.5.4-r0ALPINE-CVE-2025-67724
Debian:12python-tornado6.2.0-3+deb12u4DEBIAN-CVE-2025-67724
Debian:13python-tornado6.4.2-3+deb13u2DEBIAN-CVE-2025-67724
Debian:14python-tornado6.5.4-0.1DEBIAN-CVE-2025-67724
PyPItornado6.5.3PYSEC-2025-265
PyPItornado6.5.3GHSA-pr2v-jx2c-wg9f
Ubuntu:24.04:LTSpython-tornado6.4.0-1ubuntu0.4UBUNTU-CVE-2025-67724
Ubuntu:25.10python-tornado6.4.2-3ubuntu0.2UBUNTU-CVE-2025-67724

Affected products (as reported)

VendorProductVersions
tornadoweb tornado < 6.5.3

Weakness: CWE-79, CWE-644 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

References