Skip to content
Fencer Vulns
medium 5.4

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-registrar
    +6 more products
    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
    affected: workaround, no fix available “Fix deferred”

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

Weakness
  • CWE-79 Improper Neutralization of Input During Web Page Generation
  • CWE-644 Improper Neutralization of HTTP Headers for Scripting Syntax

References

Sources

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.