OESA-2026-1903 (CVE-2025-67724)
Vulnerability from osv_openeuler – Published: 2026-04-11 11:10 – Updated: 2026-08-06 11:10 – Source websiteTornado is an open source version of the scalable, non-blocking web server and tools.
Security Fix(es):
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.(CVE-2025-67724)
In Tornado before 6.5.5, cookie attribute injection could occur because the domain, path, and samesite arguments to .RequestHandler.set_cookie were not checked for crafted characters.(CVE-2026-35536)
| URL | Type | |
|---|---|---|
{
"affected": [
{
"ecosystem_specific": {
"aarch64": [
"python-tornado-debuginfo-6.5-4.oe2403sp3.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp3.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403sp3.aarch64.rpm",
"python3-tornado-6.5-4.oe2403sp3.aarch64.rpm"
],
"src": [
"python-tornado-6.5-4.oe2403sp3.src.rpm"
],
"x86_64": [
"python-tornado-debuginfo-6.5-4.oe2403sp3.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp3.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403sp3.x86_64.rpm",
"python3-tornado-6.5-4.oe2403sp3.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:24.03-LTS-SP3",
"name": "python-tornado",
"purl": "pkg:rpm/openEuler/python-tornado\u0026distro=openEuler-24.03-LTS-SP3"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "6.5-4.oe2403sp3"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"python-tornado-debuginfo-5.0.2-12.oe2003sp4.aarch64.rpm",
"python-tornado-debugsource-5.0.2-12.oe2003sp4.aarch64.rpm",
"python2-tornado-5.0.2-12.oe2003sp4.aarch64.rpm",
"python3-tornado-5.0.2-12.oe2003sp4.aarch64.rpm"
],
"src": [
"python-tornado-5.0.2-12.oe2003sp4.src.rpm"
],
"x86_64": [
"python-tornado-debuginfo-5.0.2-12.oe2003sp4.x86_64.rpm",
"python-tornado-debugsource-5.0.2-12.oe2003sp4.x86_64.rpm",
"python2-tornado-5.0.2-12.oe2003sp4.x86_64.rpm",
"python3-tornado-5.0.2-12.oe2003sp4.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:20.03-LTS-SP4",
"name": "python-tornado",
"purl": "pkg:rpm/openEuler/python-tornado\u0026distro=openEuler-20.03-LTS-SP4"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "5.0.2-12.oe2003sp4"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"python-tornado-debuginfo-6.1-7.oe2203sp4.aarch64.rpm",
"python-tornado-debugsource-6.1-7.oe2203sp4.aarch64.rpm",
"python-tornado-help-6.1-7.oe2203sp4.aarch64.rpm",
"python3-tornado-6.1-7.oe2203sp4.aarch64.rpm"
],
"src": [
"python-tornado-6.1-7.oe2203sp4.src.rpm"
],
"x86_64": [
"python-tornado-debuginfo-6.1-7.oe2203sp4.x86_64.rpm",
"python-tornado-debugsource-6.1-7.oe2203sp4.x86_64.rpm",
"python-tornado-help-6.1-7.oe2203sp4.x86_64.rpm",
"python3-tornado-6.1-7.oe2203sp4.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:22.03-LTS-SP4",
"name": "python-tornado",
"purl": "pkg:rpm/openEuler/python-tornado\u0026distro=openEuler-22.03-LTS-SP4"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "6.1-7.oe2203sp4"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"python-tornado-debuginfo-6.5-4.oe2403sp3.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp3.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403sp3.aarch64.rpm",
"python3-tornado-6.5-4.oe2403sp3.aarch64.rpm",
"python-tornado-debuginfo-6.5-4.oe2403.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403.aarch64.rpm",
"python3-tornado-6.5-4.oe2403.aarch64.rpm",
"python-tornado-debuginfo-6.5-4.oe2403sp1.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp1.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403sp1.aarch64.rpm",
"python3-tornado-6.5-4.oe2403sp1.aarch64.rpm",
"python-tornado-debuginfo-6.5-4.oe2403sp2.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp2.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403sp2.aarch64.rpm",
"python3-tornado-6.5-4.oe2403sp2.aarch64.rpm"
],
"src": [
"python-tornado-6.5-4.oe2403sp3.src.rpm",
"python-tornado-6.5-4.oe2403.src.rpm",
"python-tornado-6.5-4.oe2403sp1.src.rpm",
"python-tornado-6.5-4.oe2403sp2.src.rpm"
],
"x86_64": [
"python-tornado-debuginfo-6.5-4.oe2403sp3.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp3.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403sp3.x86_64.rpm",
"python3-tornado-6.5-4.oe2403sp3.x86_64.rpm",
"python-tornado-debuginfo-6.5-4.oe2403.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403.x86_64.rpm",
"python3-tornado-6.5-4.oe2403.x86_64.rpm",
"python-tornado-debuginfo-6.5-4.oe2403sp1.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp1.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403sp1.x86_64.rpm",
"python3-tornado-6.5-4.oe2403sp1.x86_64.rpm",
"python-tornado-debuginfo-6.5-4.oe2403sp2.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp2.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403sp2.x86_64.rpm",
"python3-tornado-6.5-4.oe2403sp2.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:24.03-LTS",
"name": "python-tornado",
"purl": "pkg:rpm/openEuler/python-tornado\u0026distro=openEuler-24.03-LTS"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "6.5-4.oe2403sp2"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"python-tornado-debuginfo-6.5-4.oe2403sp1.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp1.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403sp1.aarch64.rpm",
"python3-tornado-6.5-4.oe2403sp1.aarch64.rpm"
],
"src": [
"python-tornado-6.5-4.oe2403sp1.src.rpm"
],
"x86_64": [
"python-tornado-debuginfo-6.5-4.oe2403sp1.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp1.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403sp1.x86_64.rpm",
"python3-tornado-6.5-4.oe2403sp1.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:24.03-LTS-SP1",
"name": "python-tornado",
"purl": "pkg:rpm/openEuler/python-tornado\u0026distro=openEuler-24.03-LTS-SP1"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "6.5-4.oe2403sp1"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"python-tornado-debuginfo-6.5-4.oe2403sp2.aarch64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp2.aarch64.rpm",
"python-tornado-help-6.5-4.oe2403sp2.aarch64.rpm",
"python3-tornado-6.5-4.oe2403sp2.aarch64.rpm"
],
"src": [
"python-tornado-6.5-4.oe2403sp2.src.rpm"
],
"x86_64": [
"python-tornado-debuginfo-6.5-4.oe2403sp2.x86_64.rpm",
"python-tornado-debugsource-6.5-4.oe2403sp2.x86_64.rpm",
"python-tornado-help-6.5-4.oe2403sp2.x86_64.rpm",
"python3-tornado-6.5-4.oe2403sp2.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:24.03-LTS-SP2",
"name": "python-tornado",
"purl": "pkg:rpm/openEuler/python-tornado\u0026distro=openEuler-24.03-LTS-SP2"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "6.5-4.oe2403sp2"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"database_specific": {
"severity": "High"
},
"details": "Tornado is an open source version of the scalable, non-blocking web server and tools.\r\n\r\nSecurity Fix(es):\n\nTornado 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 \u0026quot;reason\u0026quot; phrases (the \u0026quot;Not Found\u0026quot; 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.(CVE-2025-67724)\n\nIn Tornado before 6.5.5, cookie attribute injection could occur because the domain, path, and samesite arguments to .RequestHandler.set_cookie were not checked for crafted characters.(CVE-2026-35536)",
"id": "OESA-2026-1903",
"modified": "2026-08-06T11:10:55Z",
"published": "2026-04-11T11:10:55Z",
"references": [
{
"type": "ADVISORY",
"url": "https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-1903"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-67724"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-35536"
}
],
"schema_version": "1.7.2",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N",
"type": "CVSS_V3"
}
],
"summary": "python-tornado security update",
"upstream": [
"CVE-2025-67724",
"CVE-2026-35536"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.