HTTP/2 WINDOW_UPDATE and SETTINGS frames reset the request body read timeout in Bandit
Impact
Bandit versions 1.4.0 before 1.14.0 have an Allocation of Resources Without Limits or Throttling vulnerability, allowing an unauthenticated remote attacker to hold stream processes open indefinitely via WINDOW_UPDATE or empty SETTINGS frames. The attacker must send these frames while a Plug reads the request body. This can block the read_body function, along with the stream process and application resources.
Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.What to do
Disable HTTP/2 with http_2_options: [enabled: false], so that the vulnerable read path never runs.
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
1.4.0 → 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
fff06efe3be962b484bd4d3eb339372fda5a231f → 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 request body reader of mtrudel bandit allows an unauthenticated remote attacker to hold stream processes open indefinitely via WINDOW_UPDATE or empty SETTINGS frames sent while a Plug reads the request body.
Bandit.HTTP2.Stream.do_read_data/4 in lib/bandit/http2/stream.ex waits for each frame with a fresh read_timeout. A stream WINDOW_UPDATE, or the zero-delta window update that every empty SETTINGS frame delivers to all streams, ends the wait without delivering any body data, and the loop starts a new full countdown. A client that sends one of these 9-byte frames before each countdown expires keeps read_body blocked, together with the stream process and whatever the application holds while reading, for as long as it likes.
This issue affects bandit: from 1.4.0 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-115269View 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): 1.4.0
Before: 1.14.0
Original applicability statements
[
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*",
"versionEndExcluding": "1.14.0",
"versionStartIncluding": "1.4.0",
"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.