Skip to content
OpenAdvisories
High · 8.7 CVE-2026-108529 EEF-CVE-2026-108529EUVD-2026-109829GHSA-j363-h72p-296m

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

Published Oct 26, 2026 · Updated Oct 26, 2026 · Assigned by EEF

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.

Affected products

VendorProductAffectedFixed
mtrudel bandit 0.3.4 – < 1.14.0 1.14.0

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Ubuntu 26.10 bandit No fix yet —
Ubuntu 26.04 LTS bandit No fix yet —
Ubuntu 24.04 LTS bandit No fix yet —
Ubuntu 22.04 LTS bandit No fix yet —
Ubuntu 20.04 LTS bandit No fix yet —
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS bandit No fix yet —
Ubuntu 16.04 LTS bandit No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
Hex bandit >= 0.3.4, < 1.14.0 1.14.0 EEF-CVE-2026-108529

References