Client-chosen HPACK encoder table size is applied uncapped, growing per-connection state with every response in Bandit
Impact
Bandit HTTP/2 implementation has an Allocation of Resources Without Limits or Throttling vulnerability, allowing an unauthenticated remote attacker to grow per-connection memory and CPU cost without bound. This affects bandit versions from 0.3.6 before 1.14.0. The attacker can exploit this by sending a large SETTINGS_HEADER_TABLE_SIZE.
Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.What to do
From 0.7.0, cap the requests one HTTP/2 connection may serve, for example with http_2_options: [max_requests: 1000], so each connection and its encoder table is closed before the cost grows large. Alternatively, disable HTTP/2 with http_2_options: [enabled: false].
Affected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
mtrudel · EEF
bandit
1 range
mtrudel · EEF
bandit
Package identity
pkg:hex/banditExplore bandit →Identity supplied by EEF. Version matching requires compatible range evidence.
Compare with this publisher’s ranges. This does not inspect your installation.
affected
0.3.6 → before 1.14.0
semver versions
Other versions: unaffected
Product identifiers (CPE)
cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*mtrudel · EEF
bandit
1 range
mtrudel · EEF
bandit
Package identity
pkg:github/mtrudel/banditIdentity supplied by EEF. Version matching requires compatible range evidence.
Compare with this publisher’s ranges. This does not inspect your installation.
affected
0e68313fab9d204257ebad5c447e4cd9cea8e0ea → before 220b9dfd27f9a21305be2afc75cbe585ddc24e7a
git versions
Other versions: unaffected
Product identifiers (CPE)
cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*Original source description
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.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-110499View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Environment requirements
These conditions apply together as specified by the publisher. A matching product name alone does not establish exposure.
EEF · platform conditions
All conditions must hold
Any condition may hold
Vulnerable product
cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*From (inclusive): 0.3.6
Before: 1.14.0
Original applicability statements
[
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*",
"versionEndExcluding": "1.14.0",
"versionStartIncluding": "0.3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
],
"operator": "AND"
}
]Contributing organizations · 2
Assigning organization
Additional data publisher
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.