CVE-2026-105659 Details
Description
Uncontrolled Resource Consumption vulnerability in mtrudel bandit allows an unauthenticated remote attacker to pin HTTP/2 stream processes indefinitely via a trickle of small WINDOW_UPDATE frames. A stream whose response outruns the connection or stream send window blocks until the peer grants more window, and each block carries a 15 second deadline. Both deadlines restart whenever the peer makes partial progress. Bandit.HTTP2.Connection.finish_data/5 re-queues a partially advanced send in pending_sends with a fresh expires_at, so every WINDOW_UPDATE on stream 0, and every SETTINGS frame, resets the clock. Bandit.HTTP2.Stream.send_data/3 recurses on each stream WINDOW_UPDATE and re-arms a fresh after read_timeout. A peer that grants a few bytes every few seconds keeps the blocked stream process, its Plug state and any resource it holds mid-response alive for as long as it keeps dripping, and repeats this across streams and connections to exhaust server processes and memory. The two paths are independent. The stream-level block is reached on its own by widening the connection window with a large WINDOW_UPDATE on stream 0 and shrinking the per-stream window with a small SETTINGS_INITIAL_WINDOW_SIZE, so closing only the connection-level path leaves it exploitable. This issue affects bandit: from 1.4.0 before 1.13.0.
A vulnerability in the Bandit web server in versions 1.4.0 and later allows an unauthenticated remote attacker to cause uncontrolled resource consumption. This is achieved by sending a continuous trickle of small WINDOW_UPDATE frames, which can pin HTTP/2 stream processes indefinitely. When a stream's response exceeds the available send window, it blocks until more window is granted. Each block has a 15-second deadline that resets with any partial progress. The issue arises because Bandit re-queues blocked sends with a fresh deadline, allowing a peer to keep a stream process and its associated resources alive for as long as desired. This exploitation can lead to exhaustion of server processes and memory.
Users can disable HTTP/2 in their Bandit configuration, or terminate HTTP/2 at a reverse proxy that enforces its own send timeouts and communicates via HTTP/1 to Bandit.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Oct 14, 2026CISA-ADP
Assessed Oct 16, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/mtrudel/bandit/security/advisories/GHSA-69m6-wcv4-rwcf | CISA-ADP | AdvisoryRemedyVendor |
| https://cna.erlef.org/cves/CVE-2026-105659.html | EEF | AdvisoryTechnical Description |
| https://github.com/mtrudel/bandit/commit/d88b21953c65061f21136ea76a89a4f95a2ac7a1 | EEF | Source CodeVendor |
| https://github.com/mtrudel/bandit/commit/fff06efe3be962b484bd4d3eb339372fda5a231f | EEF | Source CodeVendor |
| https://github.com/mtrudel/bandit/security/advisories/GHSA-69m6-wcv4-rwcf | EEF | AdvisoryRemedyVendor |
| https://osv.dev/vulnerability/EEF-CVE-2026-105659 | EEF | AdvisoryTechnical Description |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-400 | Uncontrolled Resource Consumption | EEF |
Affected Products
| Product | Versions |
|---|---|
| mtrudel bandit | >= 1.4.0, <= 1.12.5 (semver) |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Oct 16, 2026 | CVE Modified | CISA-ADP |
| Oct 15, 2026 | CVE Modified | EEF |
| Oct 14, 2026 | New CVE Received | EEF |
Volerion