Skip to main content

Bandit EUVDEUVD-2026-109818

| CVE-2026-108525 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-26 EEF
8.7
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Open HTTP/2 connection to Bandit server
  2. Delivery
    Request response larger than 65,535-byte window
  3. Exploit
    Withhold WINDOW_UPDATE to stall sending stream
  4. Execution
    Flood 1-byte DATA frames past receive window
  5. Impact
    Exhaust BEAM node memory, crashing all node apps

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires only that the target run Bandit (0.3.1 up to, but not including, 1.14.0) with HTTP/2 enabled, which is the default - so no non-default configuration is needed. The attacker must drive HTTP/2 flow control manually: request a response exceeding the 65,535-byte initial window, withhold WINDOW_UPDATE so the stream stalls in send_data/3 and stops reading, then flood DATA frames while sending periodic 1-byte WINDOW_UPDATEs (under the 15-second send timeout) to keep the stalled send alive. No authentication (PR:N) and no user interaction (UI:N) are required. The only effective limiting factor is HTTP/2 being enabled; the documented workaround that removes the vulnerable path is disabling HTTP/2 via http_2_options: [enabled: false], and the vendor's complete fix is upgrading to 1.14.0.

Impact

All reachability signals point to easy exploitation: the CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N, base 8.7 High) describes a network-reachable, low-complexity, unauthenticated attack with no user interaction, and the GHSA advisory confirms the mechanism directly from source (handle_frame/3 forwarding DATA frames without checking the receive window, and compute_recv_window/2 replenishing on arrival rather than consumption). Impact is narrow but severe in one dimension - pure availability (VC:N/VI:N/VA:H): no data is read, modified, or leaked, but because queued frames accumulate in the BEAM node's memory, exhaustion takes down every application co-located on that node, not just the HTTP listener. No EPSS score and no KEV listing are present in the input, so there is no quantitative exploitation-probability signal and no evidence of active exploitation; this is a priority driven by ease-of-trigger and blast radius rather than by observed in-the-wild activity. The vuln.today Decision label is 'this_week', consistent with a serious remotely-triggerable DoS that is not an active-exploitation emergency. A detailed step-by-step reproduction is published in the advisory. Net: a genuine, high-priority DoS for any internet-facing Bandit server with HTTP/2 enabled, tempered only by the fact that it is availability-only with no path to code execution or data compromise; absence of EPSS/KEV data means widespread automated exploitation cannot be confirmed or ruled out from the provided intelligence.

Exploit ScenarioDerived

An unauthenticated remote attacker opens an HTTP/2 connection to a Bandit server and requests a resource whose response exceeds the 65,535-byte initial window, then withholds WINDOW_UPDATE so the stream process blocks in send_data/3 and stops reading. The attacker then floods tiny 1-byte DATA frames on that stream, trickling a 1-byte WINDOW_UPDATE under the 15-second send timeout to keep the stream alive, and each unread frame piles up in the stream's mailbox until the BEAM node runs out of memory. A public PoC reference exists in the GHSA advisory describing exactly these steps; it is not verified as working exploit code.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 26, 2026

Unauthenticated remote memory exhaustion in the Elixir Bandit HTTP/2 server lets a single client consume all memory on the BEAM node by sending DATA frames that the server never refuses. Affected are bandit releases from 0.3.1 up to, but not including, 1.14.0 when HTTP/2 is enabled, which is the default. The attacker stalls a stream by requesting a response larger than the 65,535-byte initial window and withholding WINDOW_UPDATE, then floods small DATA frames that queue unread in the stream process mailbox; a public proof-of-concept procedure is described in the vendor advisory, but it is not confirmed as working exploit code, and no CISA KEV entry or other active-exploitation signal is present in the supplied data.

RemediationAI

Vendor-released patch: upgrade bandit to 1.14.0 or later, which is the complete fix; the remediation commit is https://github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a and the advisory is https://github.com/mtrudel/bandit/security/advisories/GHSA-c3g7-2pg5-qvwh. Until the upgrade is deployed, the vendor-documented workaround is to disable HTTP/2 with http_2_options: [enabled: false], which removes the vulnerable path entirely at the cost of losing HTTP/2 multiplexing and any HTTP/2-dependent client behavior, with HTTP/1.1 remaining available. The vendor states that updating is the only complete fix, and given the this_week priority decision and the unauthenticated, low-complexity network attack described by the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) and the independently assessed CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), the upgrade should be scheduled within the current patch cycle rather than deferred.

Affected VersionsENISA

bandit c8dc1e97050cf359f61ed6cdd110f3cdaf1d6f5f <220b9dfd27f9a21305be2afc75cbe585ddc24e7a
bandit 0.3.1 <1.14.0

Affected Packages

euvd bandit fix: 1.14.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Bandit is an HTTP server library for Elixir running on the BEAM VM, and HTTP/2 flow control is the protocol mechanism at issue. HTTP/2 maintains per-stream and per-connection receive windows starting at 65,535 bytes and replenished with WINDOW_UPDATE frames up to 2^31-1; a compliant peer must stop sending DATA when the window is exhausted, and a receiving endpoint that sees an overrun should answer with FLOW_CONTROL_ERROR. In the vulnerable code, Bandit.HTTP2.Connection.handle_frame/3 in lib/bandit/http2/connection.ex forwards each DATA payload to the stream process before any window check, and Bandit.HTTP2.FlowControl.compute_recv_window/2 debits the window as frames arrive rather than as data is consumed, re-advertising the window back up to 2^31-1 once it drops below 2^30 and tolerating a negative window instead of rejecting the peer. The stream-level window in lib/bandit/http2/stream.ex is likewise debited only when the stream process reads the DATA message and never rejects a violation. Because send_data/3 waits in a selective receive that matches only window updates and resets, inbound DATA messages accumulate unread in the Erlang process mailbox, which has no built-in size limit; the documented trigger keeps the stalled send alive with periodic 1-byte stream WINDOW_UPDATEs under the 15-second send timeout while 1-byte DATA frames pile up. This is CWE-770 (Allocation of Resources Without Limits or Throttling): the server never caps or throttles per-stream inbound buffering, so memory grows in the BEAM node rather than in a single connection, and exhausting it affects every application on that node, not just the HTTP listener.

Know when Bandit gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Remote, low-complexity, unauthenticated over HTTP/2 enabled by default (AV:N/AC:L/PR:N/UI:N); impact is availability-only (A:H) with no confidentiality or integrity loss, scope unchanged.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Allocation of Resources Without Limits or Throttling vulnerability in the HTTP/2 implementation of mtrudel bandit allows an unauthenticated remote attacker to exhaust server memory via DATA frames sent past the advertised receive window. The attacker requests a response larger than the 65,535-byte initial window and withholds WINDOW_UPDATE, so the stream process blocks while sending and stops reading, then floods small DATA frames on that stream. Every frame is queued in the stream's mailbox until the BEAM node runs out of memory.

Bandit.HTTP2.Connection.handle_frame/3 in lib/bandit/http2/connection.ex forwards each DATA frame to the stream process without consulting the receive window, and Bandit.HTTP2.FlowControl.compute_recv_window/2 replenishes the window as data arrives rather than as it is consumed, and never answers a violation with FLOW_CONTROL_ERROR.

This issue affects bandit: from 0.3.1 before 1.14.0.

Technical POC Analysis

CWE-770 (Allocation of Resources Without Limits or Throttling), specifically failure to enforce HTTP/2 inbound (receive) flow control.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A high-severity vulnerability in the Elixir Bandit HTTP/2 server (versions 0.3.1 to 1.13.x) allows an unauthenticated attacker to exhaust memory on any affected BEAM node by sending malformed DATA frames. Because HTTP/2 is enabled by default, any service using an unpatched Bandit release is exposed, potentially leading to service outages and operational disruption. Leadership should prioritize patching to maintain availability and prevent denial-of-service attacks.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Medium
default Plug/Phoenix web server, but within niche Elixir/Erlang ecosystem
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Bandit

View all
CVE-2026-42786 HIGH POC
8.7 May 01

Memory exhaustion in Bandit WebSocket server (versions 0.5.0 through 1.10.x) allows unauthenticated remote attackers to

CVE-2026-39804 HIGH POC
8.2 May 01

Memory exhaustion in Bandit WebSocket server (versions 0.5.9 through 1.10.x) allows unauthenticated remote attackers to

CVE-2026-42788 MEDIUM POC
6.9 May 01

Denial of service in mtrudel bandit via HTTP/2 frame deserialization allows unauthenticated remote attackers to exhaust

CVE-2026-39807 MEDIUM POC
6.3 May 01

Transport-state spoofing in Bandit 1.0.0 through 1.10.x allows unauthenticated remote attackers to forge HTTPS connectio

CVE-2026-39805 MEDIUM POC
6.3 May 01

HTTP request smuggling in mtrudel bandit before version 1.11.0 allows unauthenticated attackers to bypass edge security

CVE-2026-105659 HIGH
8.7 Oct 14

Uncontrolled HTTP/2 flow-control resource consumption in mtrudel/bandit 1.4.0 and later lets an unauthenticated remote p

CVE-2026-39806 HIGH
8.7 May 13

Unauthenticated remote denial of service in mtrudel Bandit (Elixir HTTP server) versions 1.6.1 through 1.11.0 lets any c

CVE-2026-65623 HIGH
8.7 Jul 24

CPU exhaustion in bandit 1.11.0 to 1.12.0 allows unauthenticated remote denial-of-service via WebSocket fragment reassem

CVE-2026-39803 HIGH
8.7 May 13

Unauthenticated remote denial of service in Bandit (the Elixir HTTP/1 web server for Phoenix/Plug applications) versions

CVE-2026-116078 HIGH
8.7 Oct 28

Bandit's HTTP/2 request body reader amplifies memory use, letting an unauthenticated remote client make a server hold ro

CVE-2026-108529 HIGH
8.7 Oct 26

Unauthenticated remote CPU exhaustion in mtrudel Bandit's HTTP/2 server (versions before 1.14.0) is achievable by holdin

CVE-2026-110499 HIGH
8.7 Oct 26

Unbounded per-connection memory and CPU growth in the Elixir Bandit HTTP/2 server (0.3.6 up to 1.14.0) lets an unauthent

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy