IT SBIT Services
Schneeberger
DEEN
CVE tracker

Bandit: Memory and CPU exhaustion via many 1-byte chunked request body chunks

CVE-2026-111101High 8.7

← All vulnerabilities

Summary

Bandit, an HTTP server for Elixir and Erlang, does not limit the number of chunks in an HTTP/1.1 chunked request body. An unauthenticated remote attacker can send a body made of many 1-byte chunks, which makes the server hold many times the body size in memory and use significant CPU while joining the chunks. This applies to every Bandit server that accepts HTTP/1.1, even if the application never reads the body, and can lead to denial of service.

Affected

  • Bandit from 0.1.0 before 1.14.0 (Hex package bandit)
  • Git range 7201270c34b90f6c9e15c0386c2bb802c0c72ab4 to before 220b9dfd27f9a21305be2afc75cbe585ddc24e7a

Fixed in

  • Bandit 1.14.0 (fix commit 220b9dfd27f9a21305be2afc75cbe585ddc24e7a)

Workaround

  • If all clients and proxies speak HTTP/2, disable HTTP/1 with http_1_options: [enabled: false] (requires Bandit 0.7.0 or later). The vulnerable chunked body reader then does not run.
  • No other mitigation is confirmed by the vendor.

Exploitation

  • Exploitation in the wild: none reported.
  • CISA SSVC: exploitation none, automatable yes, technical impact partial.
  • Public proof-of-concept details are described in the advisory; whether exploit code is public beyond this is unknown.
  • CISA KEV status: unknown.

Our recommendation

  • Inventory all Elixir/Phoenix projects with bandit in mix.lock, especially internet-facing services.
  • Upgrade to Bandit 1.14.0 or later and rerun the Hex audit. Bandit 1.13.x is affected.
  • Upgrade also covers other Bandit advisories published with 1.14.0 on 2026-10-26.
  • If an upgrade is not possible, apply the HTTP/2-only workaround where applicable and limit request body size at a reverse proxy.
  • Monitor memory and CPU usage of Bandit services for unusual spikes.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 00:12.

Original description (NVD)

Allocation of Resources Without Limits or Throttling vulnerability in the HTTP/1.1 chunked body reader of mtrudel bandit allows an unauthenticated remote attacker to exhaust server memory and CPU via a request body made of many 1-byte chunks. The chunked reader in lib/bandit/http1/socket.ex keeps every chunk as its own list cell and binary term until IO.iodata_to_binary/1 joins them, and nothing limits the number of chunks. The :length option of read_body/2 counts only data bytes, so tiny chunks cost far more memory than their payload: 48 MB of 1-byte chunks grew one handler process to about 500 MB and took about 6 s of CPU. The route does not need to read the body, because on keep-alive connections ensure_completed/1 drains unread bodies through the same reader. This issue affects bandit: from 0.1.0 before 1.14.0.

NVD references (5)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.