All vulnerabilities
CVE-2026-116078GHSA-pxjf-g536-7r93

HTTP/2 request bodies made of 1-byte DATA frames amplify memory use in Bandit

mtrudel bandit
CVSS
8.7High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in1.14.1Also 327bb02ff84171237e1aeff787930debd16155eeCVE List
Published28 Oct 2026Updated 28 Oct 2026CVE List

What fixes it

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Allocation of Resources Without Limits or Throttling vulnerability in the HTTP/2 request body reader of mtrudel bandit allows an unauthenticated remote attacker to exhaust server memory via a request body sent as many 1-byte DATA frames.

do_read_data/5 in lib/bandit/http2/stream.ex keeps every DATA frame payload as its own list element until the read returns. The :length option of read_body/2 counts body bytes, not frames, so a body of 1-byte frames costs a list cell and a binary term per byte. Interleaving the frames across up to 500 concurrent streams per connection keeps each stream consuming its frames as they arrive; in the reporter's test, 100 streams held 25 to 40 MiB of stream process memory for 5 MB sent. Only routes whose Plug reads the request body are affected, which includes any route behind Plug.Parsers.

This issue affects bandit: from 0.3.1 before 1.14.1.

Text from CVE List

Affected versions 2

  • banditaffected: 0.3.1 before 1.14.1CVE List
  • banditaffected: c8dc1e97050cf359f61ed6cdd110f3cdaf1d6f5f before 327bb02ff84171237e1aeff787930debd16155eeCVE List

References 5