CVEsmtrudelCVE-2026-108529Published Oct 26, 13:35 · Updated Oct 26, 15:35 UTC
8.7
HighCVSS 4.0 · from EEF
CVE-2026-108529

SETTINGS and stream-0 WINDOW_UPDATE frames trigger quadratic work over blocked streams in Bandit

bandit · CWE-407 · CWE-407
Affectedbandit, mtrudel/bandit
FixUpdate to 1.14.0, 220b9dfd27f9a21305be2afc75cbe585ddc24e7a or newer
PublishedOct 26, 13:35 · EEF
ScoredOct 26 · 8.7 · EEF
Exploit code publicNone known · checked 21:18 UTC
ExploitedNone known · CISA KEV checked 22:09 UTC

What we know

No known exploitation. CISA KEV, checked 22:09 UTC.
No public exploit code known. Exploit-DB, Metasploit, Nuclei, checked 21:18 UTC.
An attacker only needs network access to the target. No login needed. CVSS: network, no privileges.
A successful attack can take the service down. CVSS impact.

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.

From EEF

Affected and fixed versions

ProductAffectedFixed inbandit0.3.4 – before 1.14.01.14.0mtrudel/bandit6feadb31189d18b7dcda6c663112cd3bbaf63a46 – before 220b9dfd27f9a21305be2afc75cbe585ddc24e7a220b9dfd27f9a21305be2afc75cbe585ddc24e7a

Exploit code

Exploit-DBnone knownMetasploitnone knownNucleinone known

References

SETTINGS and stream-0 WINDOW_UPDATE frames trigger quadratic work over blocked streams · github.comvendor advisoryrelatedEEF CNA record for CVE-2026-108529 · cna.erlef.orgrelatedOSV record EEF-CVE-2026-108529 · osv.devrelatedIntroducing commit 6feadb3 in mtrudel/bandit · github.comrelatedFix commit 220b9df in mtrudel/bandit · github.compatch

Other CVEs in bandit

All 23 →
8.7HTTP/2 request bodies made of 1-byte DATA frames amplify memory use in Bandit · CVE-2026-116078Oct 288.7Client-chosen HPACK encoder table size is applied uncapped, growing per-connection state with every response in Bandit · CVE-2026-110499Oct 268.7HTTP/2 cookie crumb join expands a small HPACK header block into an unbounded allocation in Bandit · CVE-2026-109584Oct 26