Allocation of Resources Without Limits or Throttling Affecting bandit package, versions >=0.1.0 <1.14.0


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.6% (49th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-HEX-BANDIT-21755413
  • published27 Oct 2026
  • disclosed26 Oct 2026
  • creditPeter Ullrich

Introduced: 26 Oct 2026

NewCVE-2026-111101  (opens in a new tab)
CWE-770  (opens in a new tab)

How to fix?

Upgrade bandit to version 1.14.0 or higher.

Overview

bandit is a HTTP server for Plug and WebSock apps.

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via chunked HTTP/1.1 body reassembly in do_read_chunk in lib/bandit/http1_request.ex. When a client sends a chunked request body composed of many small chunks, the function accumulates each chunk into an iolist before converting the entire structure to a binary via IO.iodata_to_binary/1, causing memory consumption many times larger than the actual body size and sustained CPU usage during the conversion. An unauthenticated remote attacker can send a single request with a large number of one-byte chunks to exhaust server memory and CPU.

PoC

1. Run Bandit with a Plug that calls `Plug.Conn.read_body(conn, length: 1_000_000, read_length: 1_000_000)`.
2. Send `POST /` with `Transfer-Encoding: chunked` and a body of 1,000,000 chunks of `1\r\nA\r\n`, followed by `0\r\n\r\n`.
3. When `read_body` returns the 1,000,000 body bytes, the handler process holds about 48 MB and BEAM memory has grown by about 55 MB, for 6 MB sent.

Note: The PoC uses a Plug application running on Bandit that calls Plug.Conn.read_body/2 with a 1 MB length limit, receiving a chunked POST body of 1,000,000 single-byte chunks.

CVSS Base Scores

version 4.0
version 3.1