CVE-2026-49854 Tornado: Out-of-bounds memory access in C extension
Out-of-bounds read in Tornado's optional C extension during XSRF token decoding can cause crashes or potential code execution.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-49854?
CVE-2026-49854 is a medium-severity memory corruption vulnerability in tornadoweb tornado, published on 14 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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.
Weakness: CWE-126
Which versions are affected by CVE-2026-49854?
3 open source packages ship an affected version, including tornado.
| Package | Affected | Fixed in |
|---|---|---|
tornado PyPI | All versions | 6.5.6 |
tornado PyPI | All versions | 6.5.6 |
tornado PyPI | All versions | 6.5.6 |
How do I fix CVE-2026-49854?
Upgrade tornado to 6.5.6 or later.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2026-49854 being exploited?
There is no known exploitation of CVE-2026-49854 in the wild and no public exploit code.
Sources
Also known as AZL-92382, BELL-CVE-2026-49854, CLEANSTART-2026-EI49754, CLEANSTART-2026-YI76891, DEBIAN-CVE-2026-49854, ECHO-6886-9687-7159 and 12 more.