CVE-2025-67724 json
Tornado vulnerable to Header Injection and XSS via reason argument
published 2025-12-12 10 mo ago modified 2026-10-07 32 d ago also EUVD-2025-203032 , GHSA-pr2v-jx2c-wg9f , PYSEC-2025-265
- cvss
- 5.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 15%
- public exploits
- 0
- none known
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.
Patch / fix
- pypi tornado 6.5.3
- tornadoweb tornado 6.5.3
- python-tornado Debian 12 6.2.0-3+deb12u4
- python-tornado Debian 13 6.4.2-3+deb13u2
- python-tornado Debian 14 6.5.4-0.1
debian advisories DEBIAN-CVE-2025-67724
- python-tornado Ubuntu 24.04 LTS 6.4.0-1ubuntu0.4
- python-tornado Ubuntu 25.10 6.4.2-3ubuntu0.2
- python-tornado Ubuntu Pro 20.04 LTS 6.0.3+really5.1.1-3ubuntu0.1~esm3
- python-tornado Ubuntu Pro 22.04 LTS 6.1.0-3ubuntu0.1~esm4
ubuntu advisories UBUNTU-CVE-2025-67724
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- rhnlib EL-10:Update:Products:MultiLinuxManagerToolsBeta:Update 5.2.4-100052.3.3.1
- spacecmd Multi Linux Manager Tools Beta EL-10, EL-10:Update:Products:MultiLinuxManagerToolsBeta:Update 5.2.6-100052.3.3.1
- venv-salt-minion Multi Linux Manager Tools Beta EL-10, EL-10:Update:Products:MultiLinuxManagerToolsBeta:Update 3006.0-100052.3.3.1
- uyuni-common-libs EL-10:Update:Products:MultiLinuxManagerToolsBeta:Update 5.2.3-100052.3.3.1
- saltbundlepy-m2crypto EL-10:Update:Products:MultiLinuxManagerToolsBeta:Update 0.45.1-100052.3.3.1
- spacewalk-client-tools EL-10:Update:Products:MultiLinuxManagerToolsBeta:Update 5.2.4-100052.3.3.1
- rhnlib Multi Linux Manager Tools Beta SLE-15 5.2.4-159000.4.3.1
- grafana Multi Linux Manager Tools Beta SLE-15 11.6.11-159000.2.3.2
suse advisories SUSE-SU-2026:1149-1SUSE-SU-2026:1148-1SUSE-SU-2026:1146-1SUSE-SU-2026:1142-1SUSE-SU-2026:1141-1SUSE-SU-2026:1140-1
- salt openSUSE Leap 16.0 3006.0-160000.4.1
- salt-test openSUSE Leap 16.0 3006.0-160000.4.1
- salt openSUSE Tumbleweed 3006.0-55.1
- python-tornado6 openSUSE Leap 16.0 6.5-160000.3.1
- python-tornado6 openSUSE Tumbleweed 6.5.4-1.1
opensuse advisories openSUSE-SU-2026:20412-1openSUSE-SU-2026:10110-1openSUSE-SU-2026:20015-1openSUSE-SU-2025:15838-1
- py3-tornado Alpine 3.24, Alpine 3.23 6.5.4-r0
alpine advisories ALPINE-CVE-2025-67724
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-67724 updated cvss 5.4
tornado: Tornado Header Injection and XSS via reason argument
-
Red Hat External Secrets Operator for Red Hat OpenShift external-secrets-operator/external-secrets-rhel9, external-secrets-operator/bitwarden-sdk-server-rhel9, external-secrets-operator/external-secrets-operator-rhel9, external-secrets-operator/external-secrets-operator-bundle Red Hat external secrets operator for Red Hat OpenShift - Tech Preview external-secrets-operator/external-secrets-rhel9, external-secrets-operator/bitwarden-sdk-server-rhel9, external-secrets-operator/external-secrets-operator-rhel9, external-secrets-operator/external-secrets-operator-bundle Red Hat OpenShift Service Mesh 2 openshift-service-mesh/pilot-rhel8, openshift-service-mesh/grafana-rhel8, openshift-service-mesh/proxyv2-rhel9, openshift-service-mesh/istio-cni-rhel8, openshift-service-mesh/ratelimit-rhel8, openshift-service-mesh/istio-rhel8-operator, +2 more Red Hat OpenShift Service Mesh 3 openshift-service-mesh/istio-cni-rhel9, openshift-service-mesh/istio-pilot-rhel9, openshift-service-mesh/istio-proxyv2-rhel9, openshift-service-mesh/istio-rhel9-operator, openshift-service-mesh/istio-must-gather-rhel9, openshift-service-mesh/istio-sail-operator-bundle, +1 more Red Hat Advanced Cluster Security 4 advanced-cluster-security/rhacs-collector-rhel8 Red Hat Enterprise Linux 9 rhel9/keylime-verifier, rhel9/keylime-registraraffected: workaround, no fix available “Fix deferred”
+6 more productsfewer
Red Hat Enterprise Linux 10 rhel10/keylime-verifier, rhel10/keylime-registrar Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/disk-image-cuda-rhel9 Red Hat OpenShift AI (RHOAI) rhoai/odh-llama-stack-core-rhel9, rhoai/odh-trustyai-ragas-lls-provider-dsp-rhel9, rhoai/odh-pipeline-runtime-minimal-cpu-py312-rhel9, rhoai/odh-pipeline-runtime-pytorch-cuda-py312-rhel9, rhoai/odh-pipeline-runtime-pytorch-rocm-py312-rhel9, rhoai/odh-workbench-jupyter-minimal-cpu-py312-rhel9, +14 more Red Hat OpenShift Container Platform 4 python-pep517 Red Hat OpenStack Platform 16.2 rhosp-rhel8/openstack-redis, rhosp-rhel8/openstack-haproxy, rhosp-rhel8/openstack-mariadb, rhosp-rhel8/openstack-rabbitmq, rhosp-rhel8/openstack-ovn-northd, rhosp-rhel8/openstack-manila-share, +2 more Red Hat OpenStack Platform 17.1 rhosp-rhel9/openstack-redis, rhosp-rhel9/openstack-haproxy, rhosp-rhel9/openstack-mariadb, rhosp-rhel9/openstack-rabbitmq, rhosp-rhel9/openstack-ovn-northd, rhosp-rhel9/openstack-manila-share, +2 more
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 10 mo ago
Exploit prediction
0.24% chance of exploitation in the next 30 days, higher than 15% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| GitHub | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| OSV | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | tornado | <6.5.3 |
6.5.3 |
Affected products
- tornadoweb tornado
Classification
References
-
github.com
/tornadoweb/tornado/commit/9c163aebeaad9e6e7d28bac1f33580eb00b0e421
web, patch
-
github.com
/tornadoweb/tornado/security/advisories/GHSA-pr2v-jx2c-wg9f
web, mitigation, vendor-advisory, advisory
-
github.com
/tornadoweb/tornado/releases/tag/v6.5.3
web, release-notes, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2025-67724
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2025-265.yaml
web
-
github.com
/tornadoweb/tornado
package
Sources
- CVE List CVE-2025-67724
- GitHub Advisory GHSA-pr2v-jx2c-wg9f
- NVD CVE-2025-67724
- OSV PYSEC-2025-265
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.