Tornado is a Python web framework and asynchronous networking library. Prior to 6.5.6, the optional native extension tornado.speedups implemented websocket_mask without validating that the mask argument is exactly four bytes, allowing the C function to read up to three bytes beyond the provided buffer when reached through Tornado XSRF token decoding with the native extension active. This issue is fixed in version 6.5.6.
CVE-2026-49854
This medium-severity CVE scores 5.3 under a secondary CVSS source (NVD's own analysis pending). EPSS exploit probability: 0.4%, top 64% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).
- Lower severity and no public exploit yet
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 5.3
- EG Score
- 5.3(medium)
- EG Risk
- —
- EPSS
- 36.7%
- KEV
- Not listed
Published
June 12, 2026
Last Modified
July 15, 2026
Advisory Details (3)
Auto-updated Jul 15, 2026Out-of-bounds memory access in C extension · Advisory · tornadoweb/tornado · GitHub
https://github.com/tornadoweb/tornado/security/advisories/GHSA-cx3h-4qpv-8hc9Combined changes for release 6.5.6
Fix merged in tornadoweb/tornado PR #3626 on 2026-05-27 — awaiting tagged release
https://github.com/tornadoweb/tornado/pull/3626commit 96dc88c2a057 (tornadoweb/tornado)
Fix landed in tornadoweb/tornado commit 96dc88c2a057 — awaiting tagged release
https://github.com/tornadoweb/tornado/commit/96dc88c2a05705287856b2cd6b4b4034f9a6aaacVendor Advisories for CVE-2026-49854(1)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
Affected Packages
(1 across 1 ecosystem)
PyPI(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| tornado | 0.2 ... 6.5b1 (81 versions) | 6.5.6 | — |
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 9× in last 7d / 12× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
- 2026-07-22 14:08 UTCEPSS rescore
- 2026-07-21 15:25 UTCEPSS rescore
- 2026-07-20 17:08 UTCEPSS rescore
- 2026-07-19 14:31 UTCEPSS rescore
- 2026-07-19 14:31 UTCEPSS rescore
- 2026-07-19 02:29 UTCEPSS rescore
- 2026-07-18 10:04 UTCEPSS rescore
- 2026-07-17 06:14 UTCEG score recompute▲ 1.60
- 2026-07-16 17:03 UTCEPSS rescore
- 2026-07-15 16:57 UTCEPSS rescore
- 2026-07-15 16:57 UTCEPSS rescore
- 2026-07-14 20:50 UTCMITRE cvelistV5CVSS v3 → 5.3 · severity → MEDIUM
- 2026-06-14 23:18 UTCEPSS rescore
- 2026-06-13 23:00 UTCEPSS rescore
- 2026-06-12 23:12 UTCEPSS rescore
- 2026-06-12 19:11 UTCEG score recompute
Frequently asked(5)
What is CVE-2026-49854?
When was CVE-2026-49854 disclosed?
Is CVE-2026-49854 actively exploited?
What is the CVSS score of CVE-2026-49854?
How do I remediate CVE-2026-49854?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-49854
Is Your Infrastructure Affected by CVE-2026-49854?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.