CVE-2026-109584: Bandit HTTP/2 data amplification in HPACK decompression

CVE-2026-109584 · Severity: info · Published 2026-10-26

Bandit is an HTTP/2 web server library for Elixir. An unauthenticated attacker can send a specially crafted HTTP/2 request with highly compressed headers that causes the server to allocate massive amounts of memory, exhausting available resources and causing a denial of service. A 49 KB malicious request can force servers to allocate 183 MB of memory before application code even runs.

Technologies: Mtrudel Bandit. Vendors: Mtrudel.

Quick answers

Is CVE-2026-109584 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-109584 being exploited in the wild.
How severe is CVE-2026-109584?
Informational severity, published 26 October 2026.
Which products and versions are affected?
Mtrudel Bandit 0.3.3 to before 1.14.0.
Is there a fix for CVE-2026-109584?
Yes: fixed in Bandit 1.14.0. Until then: Configure a finite max_header_list_size value to reject oversized decompressed header lists before memory allocation. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-109584 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-109584?
Check whether you run Mtrudel Bandit at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: Bandit 1.14.0

Configure a finite max_header_list_size value to reject oversized decompressed header lists before memory allocation.

Technical details

The vulnerability is a data amplification attack in HTTP/2 header decompression (HPACK). An attacker crafts a compressed HEADERS frame that stores one large cookie in the HPACK dynamic table, then references it thousands of times using 1-byte indexed fields. Bandit only validates the compressed block size (max_header_block_size) but never enforces the decompressed list limit (max_header_list_size, which defaults to infinity), and the combine_cookie_crumbs function concatenates all cookie fragments into a single binary, amplifying memory consumption. Each concurrent stream can repeat this attack independently.

Affected products

  • mtrudel Bandit 0.3.3 to before 1.14.0

Timeline

  • 2026-10-26: disclosed

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.