GitHub Advisoryadvisory · PyPI

GHSA-mgf9-4vpg-hj56 tornado AsyncHTTPClient accumulates decompressed chunks without size limit (gzip bomb)

HIGH Published 2026-06-15 Modified 2026-06-15 Official page ↗
Aliases
CVE-2026-49855
Ecosystem
PyPI
Packages
tornado
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-409
Reviewed
2026-06-15

Affected packages

• PyPI tornado: < 6.5.6 → fixed in 6.5.6

Description

Tornado's gzip decompression routines work in limited-size chunks, but have no overall limit for the total size of decompressed chunks that they will accumulate (There has always been a limit for the total *compressed* size). This allows a malicious server to consume effectively unlimited amounts of memory if it is accessed via SimpleAsyncHTTPClient in its default configuration. `HTTPServer` is not affected in its default configuration, but it is if `decompress_request=True` is set. This bug is fixed in Tornado 6.5.6. `max_body_size` is now checked both for the compressed and cumulative decompressed size of the response. Prior to upgrading, this issue can be mitigated by setting `decompress_response=False` or using `CurlAsyncHTTPClient`.

Related

Alias · CVE (1)

  • CVE-2026-49855 Tornado is a Python web framework and asynchronous networking library. vulnerability

Weakness · CWE (1)

  • CWE-409 Improper Handling of Highly Compressed Data (Data Amplification) weakness

References