
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-49855 is a gzip bomb (data amplification) vulnerability in the Tornado Python web framework and asynchronous networking library, classified as "Improper Handling of Highly Compressed Data" (CWE-409). Prior to version 6.5.6, Tornado's gzip decompression routines processed data in limited-size chunks but imposed no overall limit on the total accumulated decompressed data, enabling a malicious server to exhaust the memory of any client using SimpleAsyncHTTPClient in its default configuration, or any HTTPServer configured with decompress_request=True. The vulnerability was reported by researcher yuui25, published to the GitHub Advisory Database on June 15, 2026, and assigned a CVSS v3.1 base score of 7.5 (High) (Github Advisory). Affected versions are all Tornado releases prior to 6.5.6 (Github Advisory).
The root cause is CWE-409 (Improper Handling of Highly Compressed Data / Data Amplification): Tornado's _GzipMessageDelegate class in http1connection.py tracked and limited the size of individual compressed chunks but never tracked the cumulative total of decompressed output (Tornado Commit). An attacker controlling a server can respond with a specially crafted gzip-compressed HTTP response (a "gzip bomb") that decompresses to an arbitrarily large payload; the Tornado client will continue decompressing and buffering chunks until system memory is exhausted. The attack requires no authentication and no user interaction — only that the vulnerable Tornado application makes an outbound HTTP request to an attacker-controlled server via SimpleAsyncHTTPClient, or that HTTPServer is configured with decompress_request=True (Github Advisory). The fix adds a _decompressed_body_size counter to _GzipMessageDelegate and raises httputil.HTTPInputError when the cumulative decompressed size exceeds max_body_size (Tornado Commit).
Successful exploitation results in unbounded memory consumption on the Tornado process, leading to denial of service (DoS) through memory exhaustion or process crash. There is no impact on confidentiality or data integrity — the vulnerability is purely an availability issue. Applications using SimpleAsyncHTTPClient to fetch content from untrusted or attacker-controlled servers are at highest risk, as are servers with decompress_request=True that accept gzip-compressed request bodies from untrusted clients (Github Advisory).
No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the available data. The NVD SSVC assessment indicates exploitation status as "none" and the attack is classified as "automatable" due to its network-accessible, no-authentication-required nature (Github Advisory). The EPSS score is approximately 0.052% (Feedly data) to 0.572% (GitHub Advisory), placing it in the lower-to-mid range of exploitation likelihood. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported.
SimpleAsyncHTTPClient to attacker-controlled or attacker-influenced URLs, or an HTTPServer configured with decompress_request=True.HTTPServer.Content-Encoding: gzip and the crafted payload. Tornado's _GzipMessageDelegate begins decompressing chunks without enforcing a cumulative size limit.httputil.HTTPInputError: decompressed body too large (present only in patched version 6.5.6+); absence of this error in older versions despite large response processing may indicate exploitation.python/python3) without a corresponding increase in legitimate traffic load; OOM (Out of Memory) killer events in system logs (/var/log/syslog, dmesg) referencing the Tornado process.Content-Encoding: gzip and unusually small Content-Length values relative to the time taken to process the response.Upgrade Tornado to version 6.5.6 or later, which enforces max_body_size on the cumulative decompressed body size in _GzipMessageDelegate (Github Advisory, Tornado Commit). If immediate upgrade is not possible, apply one of the following workarounds:
SimpleAsyncHTTPClient users: set decompress_response=False in the HTTP client configuration to disable automatic gzip decompression.CurlAsyncHTTPClient, which is not affected by this issue.HTTPServer users: avoid setting decompress_request=True unless strictly necessary, or upgrade promptly (Github Advisory).SUSE has also released updated packages for affected distributions (SUSE Advisory).
The vulnerability received coverage from security news outlets including SecurityOnline.info and Linux security aggregators, as well as distribution-level advisories from SUSE and openSUSE (openSUSE Advisory). The OpenHands project (an AI coding assistant that depends on Tornado) addressed the vulnerability in its cloud-1.39.0 and 1.9.0 releases. No significant controversy or notable researcher commentary beyond the standard advisory process has been observed.
Fix availability across major Linux distributions and their releases.
bionic (esm-apps)
python-tornado
devel
python-tornado
focal (esm-apps)
python-tornado
jammy
python-tornado
jammy (esm-apps)
python-tornado
noble
python-tornado
resolute
python-tornado
xenial (esm-infra-legacy)
python-tornado
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."