CVE-2026-115269: HTTP/2 WINDOW_UPDATE and SETTINGS frames reset the request body read timeout in Bandit
Allocation of Resources Without Limits or Throttling vulnerability in the HTTP/2 request body reader of mtrudel bandit allows an unauthenticated remote attacker to hold stream processes open indefinitely via WINDOWUPDATE or empty SETTINGS frames sent while a Plug reads the request body.
Bandit.HTTP2.Stream.doreaddata/4 in lib/bandit/http2/stream.ex waits for each frame with a fresh readtimeout. A stream WINDOWUPDATE, or the zero-delta window update that every empty SETTINGS frame delivers to all streams, ends the wait without delivering any body data, and the loop starts a new full countdown. A client that sends one of these 9-byte frames before each countdown expires keeps readbody blocked, together with the stream process and whatever the application holds while reading, for as long as it likes.
This issue affects bandit: from 1.4.0 before 1.14.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
mtrudel/banditto a version that resolves this vulnerability.Fixed in 1.14.0