Description
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.
Published: 2026-10-26
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Resource exhaustion via remote HTTP/1.1 chunked body leading to denial of service
Action: Patch Now
AI Analysis

Impact

The vulnerable chunked body reader in Bandit allocates memory without bounds when processing HTTP/1.1 requests composed of many 1‑byte chunks. A single 48 MB series of 1‑byte chunks can inflate a handler process to roughly 500 MB and consume several seconds of CPU time, effectively exhausting server resources. Although the route does not normally read the request body, the HTTP/1.1 protocol forces the reader to parse every chunk, so the attacker can trigger the issue without authentication or special privileges.

Affected Systems

This flaw affects the Bandit HTTP server from release 0.1.0 up through 1.13.99, including all 1.13.x and 0.xx.x versions. The product is produced by mtrudel under the name Bandit and is available via its GitHub repository.

Risk and Exploitability

The CVSS score of 8.7 indicates a high impact vulnerability. The EPSS score is currently undocumented, and the flaw is not listed in the CISA KEV catalog. The likely attack vector is an unauthenticated remote attacker sending a crafted HTTP/1.1 request with many tiny chunks. The exploit would require the server to accept HTTP/1.1 traffic; disabling HTTP/1.1 or limiting request parsing would mitigate exploitation. No public exploit is known, but the high severity warrants immediate attention.

Generated by OpenCVE AI on October 26, 2026 at 15:23 UTC.

Remediation

Vendor Workaround

From 0.7.0, a server whose clients and proxies all speak HTTP/2 can disable HTTP/1 with http_1_options: [enabled: false], so that the vulnerable chunked body reader never runs.


OpenCVE Recommended Actions

  • Upgrade Bandit to version 1.14.0 or later to apply the vendor fix
  • If upgrading is not yet possible, configure the server to disable HTTP/1.1 by setting http_1_options: [enabled: false] so that the vulnerable reader never runs
  • Ensure all clients and proxy servers also use HTTP/2; monitor server memory and CPU usage for anomalous spikes

Generated by OpenCVE AI on October 26, 2026 at 15:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 26 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 26 Oct 2026 14:00:00 +0000

Type Values Removed Values Added
Description 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.
Title HTTP/1.1 chunked request bodies made of 1-byte chunks amplify memory use in Bandit
First Time appeared Mtrudel
Mtrudel bandit
Weaknesses CWE-770
CPEs cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*
Vendors & Products Mtrudel
Mtrudel bandit
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-10-26T15:35:51.401Z

Reserved: 2026-10-23T12:30:01.834Z

Link: CVE-2026-111101

cve-icon Vulnrichment

Updated: 2026-10-26T15:32:46.669Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-26T14:16:27.227

Modified: 2026-10-26T16:59:16.113

Link: CVE-2026-111101

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-26T17:00:15Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling