Description
Improper Cleanup on Thrown Exception vulnerability in the HTTP/2 handler of mtrudel bandit allows an unauthenticated remote attacker to bypass per-connection resource limits via a single TCP write that carries several frames, one of which raises a stream error.
When a frame raises StreamError partway through a chunk, Bandit.HTTP2.Handler.handle_data/3 sends RST_STREAM and continues with the connection state from before the chunk, dropping the rest of it. Streams opened by earlier frames in the chunk keep running their Plug calls, but the stream counts, last_stream_id, the rapid-reset timestamps, the HPACK decoder state and the buffer roll back, so max_concurrent_streams, max_requests and the rapid-reset limiter never see those streams. A client that sends one HEADERS frame more than max_concurrent_streams in each write has the extra refused and the others forgotten: with a limit of 10, five such writes run 50 Plug calls at once.
This issue affects bandit: from 1.9.0 before 1.14.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| mtrudel | bandit | 1.9.0 – < 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.
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | bandit | No fix yet | — |
| Ubuntu 16.04 LTS | bandit | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Hex | bandit | >= 1.9.0, < 1.14.0 | 1.14.0 | EEF-CVE-2026-111103 |
References
- HTTP/2 StreamError recovery rolls back connection state and bypasses per-connection limits in Bandit vendor-advisory related
- EEF CNA record for CVE-2026-111103 related
- OSV record EEF-CVE-2026-111103 related
- Introducing commit 3ad49c8 in mtrudel/bandit related
- Fix commit 220b9df in mtrudel/bandit patch