High severity · published Oct 26, 2026
CVE-2026-108529
SETTINGS and stream-0 WINDOW_UPDATE frames trigger quadratic work over blocked streams in Bandit
New
8.7
CVSS
0.6%
EPSS
No
On KEV
Description
Inefficient Algorithmic Complexity vulnerability in the HTTP/2 implementation of mtrudel bandit allows an unauthenticated remote attacker to exhaust server CPU via small SETTINGS or connection-level WINDOW_UPDATE frames. The attacker opens thousands of streams whose responses block on the connection send window, then sends cheap frames that each make the server walk the whole queue of blocked sends. In the reporter's run, with 3,000 blocked streams a single 9-byte SETTINGS frame took 133 ms to process.
do_pending_sends/2 in lib/bandit/http2/connection.ex retries every queued send and, before each retry, removes that entry from the queue with List.delete/2, so one frame costs O(n²) list operations for n blocked streams. max_concurrent_streams defaults to :infinity, so the attacker chooses n.
This issue affects bandit: from 0.3.4 before 1.14.0.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.6% · higher than 49% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
BA
bandit · mtrudel
0.3.4 before 1.14.0; 6feadb31189d18b7dcda6c663112cd3bbaf63a46 before 220b9dfd27f9a21305be2afc75cbe585ddc24e7a · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-108529
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-108529
cna.erlef.org
https://cna.erlef.org/cves/CVE-2026-108529.html
github.com
https://github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a
github.com
https://github.com/mtrudel/bandit/commit/6feadb31189d18b7dcda6c663112cd3bbaf63a46
github.com
https://github.com/mtrudel/bandit/security/advisories/GHSA-j363-h72p-296m
osv.dev
https://osv.dev/vulnerability/EEF-CVE-2026-108529
More from bandit
8.7
CVE-2026-116078
HTTP/2 request bodies made of 1-byte DATA frames amplify memory use in Bandit
8.7
CVE-2026-110499
Client-chosen HPACK encoder table size is applied uncapped, growing per-connection state with every response in Bandit
8.7
CVE-2026-109584
HTTP/2 cookie crumb join expands a small HPACK header block into an unbounded allocation in Bandit
8.7
CVE-2026-111101
HTTP/1.1 chunked request bodies made of 1-byte chunks amplify memory use in Bandit
8.7
CVE-2026-113436
Quadratic bignum parsing of Content-Length and Host port values in Bandit
