CVE-2026-39803

Severity CVSS v4.0:
HIGH
Type:
Unavailable / Other
Publication date:
13/05/2026
Last modified:
21/05/2026

Description

Allocation of Resources Without Limits or Throttling vulnerability in mtrudel bandit allows unauthenticated remote denial of service via memory exhaustion.<br /> <br /> The chunked clause of &amp;#39;Elixir.Bandit.HTTP1.Socket&amp;#39;:read_data/2 in lib/bandit/http1/socket.ex ignores the caller-supplied :length option when reading HTTP/1 chunked request bodies. Instead of capping the accumulated body at the configured limit (e.g. Plug.Parsers&amp;#39; default 8 MB), do_read_chunked_data!/5 buffers every received chunk into an iolist unconditionally and materializes the entire body as a single binary. The function always returns {:ok, body, ...}, so callers cannot interpose a 413 response.<br /> <br /> Because Plug.Parsers runs before routing and authentication in the standard Phoenix endpoint, an unauthenticated attacker needs no valid route or credentials. Sending a single Transfer-Encoding: chunked POST request with an arbitrarily large body to any path causes the BEAM process to exhaust available memory and be terminated by the OS OOM killer.<br /> <br /> The content-length path in the same function correctly enforces the limit and is not affected.<br /> <br /> This issue affects bandit: from 1.4.0 before 1.11.1.

Vulnerable products and versions

CPE From Up to
cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:* 1.4.0 (including) 1.11.1 (excluding)