Skip to main content

Bandit EUVDEUVD-2026-109827

| CVE-2026-110499 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
  2. Delivery
    Advertise huge SETTINGS_HEADER_TABLE_SIZE in SETTINGS frame
  3. Exploit
    Stream cheap requests with per-response-varying headers
  4. Execution
    Encoder table grows uncapped, lookups scan linearly
  5. Impact
    Exhaust connection-process CPU and memory (DoS)

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

Requires that HTTP/2 be enabled and reachable on the Bandit server (the default; Bandit is the default Phoenix adapter) - disabling it via http_2_options: [enabled: false] removes exposure. No authentication and no user interaction are needed (PR:N/UI:N). The attacker must keep a long-lived HTTP/2 connection open and send a sustained stream of requests to an endpoint whose responses include per-request-varying header values so dynamic-table entries are never evicted; the cost is per-connection and grows quadratically only while the connection stays alive, so impact scales with how long connections remain open and how many the attacker holds. The limiting factors are that this is purely an availability/resource-exhaustion issue (no data disclosure or modification) and that the fixed configuration option http_2_options: [max_requests: N] (from 0.7.0) or upgrading to 1.14.0 caps or prevents the growth.

Impact

This is a genuine but bounded availability risk, best read as a priority rather than an emergency. All impact signals point in one direction: the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes network-reachable, low-complexity, unauthenticated triggering with no user interaction, but impact is confined to availability (VA:H) with no confidentiality or integrity effect (VC:N/VI:N) - consistent with the CWE-770 resource-exhaustion/DoS classification and the 'Denial Of Service' tag. There is no KEV listing and no EPSS score in the supplied data, so exploitation probability cannot be quantified from these sources; treat the absence as unknown, not as evidence of safety. The vuln.today decision label is 'this_week', which aligns with a patch-available DoS that is easy to trigger but not known to be actively exploited. A public PoC methodology is described in the GHSA advisory (open connection, advertise SETTINGS_HEADER_TABLE_SIZE of 4294967295, send cheap requests with per-response-varying headers), but the input does not mark it as confirmed working exploit code. Net: a real, prioritizable DoS against HTTP/2-enabled Bandit deployments, not a high-CVSS-but-low-real-risk paper issue, yet lacking the active-exploitation evidence that would make it an emergency.

Exploit ScenarioDerived

An unauthenticated remote attacker opens an HTTP/2 connection to a Bandit server and advertises a maximal SETTINGS_HEADER_TABLE_SIZE (up to 2^32-1). It then streams many cheap requests to an endpoint whose responses carry per-request-varying header values (date, content-length, set-cookie, x-request-id), so Bandit's HPACK encoder table grows without eviction and every response costs more than the last (O(N²) CPU per connection). A public PoC reference exists describing exactly this; it is not verified as working exploit code in the supplied data.

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

Unbounded per-connection memory and CPU growth in the Elixir Bandit HTTP/2 server (0.3.6 up to 1.14.0) lets an unauthenticated remote client advertise a SETTINGS_HEADER_TABLE_SIZE of up to 2^32-1, which Bandit applies to its HPACK encoder table with no server-side cap; every response header is then stored into that oversized table and never evicted, so the encoding cost of each response grows linearly and the connection's total cost grows quadratically. No authentication or user interaction is required (PR:N/UI:N), the effect is purely availability (C:N/I:N/A:H, scored 8.7 under CVSS 4.0 and assessed as AV:N/AC:L/PR:N/UI:N/A:H under CVSS 3.1), and it only bites while a connection is kept alive and busy with cheap requests to endpoints whose response headers vary per request. It is not confirmed actively exploited (CISA KEV), but the vendor advisory documents a public proof-of-concept procedure; treat it as a this-week priority rather than an emergency, since capping requests per connection or upgrading to 1.14.0 removes the growth.

RemediationAI

Vendor-released patch: upgrade Bandit to 1.14.0, which resizes the HPACK encoder state from the negotiated table size in the SETTINGS path rather than blindly trusting the client value (fix commit 220b9dfd27f9a21305be2afc75cbe585ddc24e7a; the earlier introducing commit is 0e68313fab9d204257ebad5c447e4cd9cea8e0ea). Where upgrading immediately is not possible, the advisory offers two workarounds: from Bandit 0.7.0 onward, cap per-connection work with http_2_options: [max_requests: 1000] so each connection and its encoder table are torn down before the quadratic cost becomes large - the trade-off is more frequent connection re-establishment and TLS handshakes, which can affect long-lived connection patterns; or disable HTTP/2 entirely with http_2_options: [enabled: false], which removes exposure but loses multiplexing and reverts clients to HTTP/1.1. Note that the mitigation only bounds the growth per connection; it does not prevent a client from opening many connections, so it should be paired with the upgrade as soon as it can be scheduled. Details are in the advisory at https://github.com/mtrudel/bandit/security/advisories/GHSA-47x4-3fxf-82fr.

Affected VersionsENISA

bandit 0.3.6 <1.14.0
bandit 0e68313fab9d204257ebad5c447e4cd9cea8e0ea <220b9dfd27f9a21305be2afc75cbe585ddc24e7a

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 Elixir HTTP server and the default adapter for Phoenix, and this flaw lives in its HTTP/2 implementation (lib/bandit/http2/connection.ex) - specifically in the HPACK header-compression layer implemented by the HPAX library. HPACK lets each endpoint maintain a dynamic table of previously seen header fields, with the size negotiated by SETTINGS_HEADER_TABLE_SIZE; in Bandit the peer's value was passed straight into HPAX.resize/2 for the encoder table without any server-side ceiling, so a client could request a table approaching 4 GB. Because encode_headers marks every response header as :store, and typical responses carry values that differ per request (date, content-length, set-cookie, x-request-id, a reflected location), new entries accumulate instead of evicting old ones, and HPAX's lookup_by_header performs a linear scan for each header encoded - producing O(N^2) CPU across N responses on one connection plus memory held for the connection's lifetime. This is CWE-770 (Allocation of Resources Without Limits or Throttling): the trigger is a client-controlled SETTINGS frame combined with a sustained request stream on a long-lived connection, and the fix wires HPAX.Table.resize/2 into the SETTINGS-handling path so encoder state is resized in step with the negotiated limit.

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, unauthenticated, low-complexity triggering on default HTTP/2 with no user interaction (AV:N/AC:L/PR:N/UI:N); impact is availability-only resource exhaustion, so C:N/I:N/A:H.

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 grow per-connection memory and CPU cost without bound via a large SETTINGS_HEADER_TABLE_SIZE. Bandit resizes its HPACK encoder table to whatever size the client advertises, up to 2^32-1 bytes, and indexes response headers into it. Because responses carry distinct values such as date or content-length, nothing is evicted and the table grows with every response for the life of the connection, while each lookup scans it linearly.

The SETTINGS handling in Bandit.HTTP2.Connection (lib/bandit/http2/connection.ex) passes remote_settings.header_table_size to HPAX.resize/2 with no server-side cap, and encode_headers encodes every response header as :store. Serving N responses on one connection therefore costs O(N²) CPU in the connection process.

This issue affects bandit: from 0.3.6 before 1.14.0.

Technical POC Analysis

CWE-770: Allocation of Resources Without Limits or Throttling.

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

The Elixir Bandit HTTP/2 server (versions 0.3.6 to 1.14.0) contains a high-severity vulnerability that allows unauthenticated remote attackers to cause severe memory and CPU exhaustion by manipulating a connection setting, leading to potential denial-of-service. This impacts any organization using Bandit for HTTP/2 services, threatening service availability and operational continuity, and warrants immediate remediation due to the public proof-of-concept.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Medium
Default Phoenix HTTP server, but Elixir/Erlang ecosystem is a specific niche
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-109584 HIGH
8.7 Oct 26

Unauthenticated remote attackers can exhaust BEAM node memory on default-configured mtrudel Bandit HTTP/2 servers (0.3.3

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