{"id":"CVE-2026-115269","title":"HTTP/2 WINDOW_UPDATE and SETTINGS frames reset the request body read timeout in Bandit","summary":"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 WINDOW_UPDATE or empty SETTIN…","severity":"high","cvss":8.7,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","cvssSource":"cna","cwe":["CWE-835","CWE-770"],"vendor":"mtrudel","product":"bandit","affected":["bandit >= 1.4.0 < 1.14.0","mtrudel/bandit >= fff06efe3be962b484bd4d3eb339372fda5a231f < 220b9dfd27f9a21305be2afc75cbe585ddc24e7a"],"ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"partial","timestamp":"2026-10-26T15:02:19.174445Z"},"published":"2026-10-26","updated":"2026-10-26","sourceUpdated":"2026-10-26T15:35:52.079Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-115269","references":[{"url":"https://github.com/mtrudel/bandit/security/advisories/GHSA-p2qv-vx88-385x","label":"HTTP/2 WINDOW_UPDATE and SETTINGS frames reset the request body read timeout in Bandit"},{"url":"https://cna.erlef.org/cves/CVE-2026-115269.html","label":"EEF CNA record for CVE-2026-115269"},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-115269","label":"OSV record EEF-CVE-2026-115269"},{"url":"https://github.com/mtrudel/bandit/commit/fff06efe3be962b484bd4d3eb339372fda5a231f","label":"Introducing commit fff06ef in mtrudel/bandit"},{"url":"https://github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a","label":"Fix commit 220b9df in mtrudel/bandit"}],"tags":["cve.org"],"ingestedAt":"2026-10-26T14:27:31.822Z","slug":"CVE-2026-115269","body":"## Overview\n\nAllocation 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 WINDOW_UPDATE or empty SETTINGS frames sent while a Plug reads the request body.\n\nBandit.HTTP2.Stream.do_read_data/4 in lib/bandit/http2/stream.ex waits for each frame with a fresh read_timeout. A stream WINDOW_UPDATE, 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 read_body blocked, together with the stream process and whatever the application holds while reading, for as long as it likes.\n\nThis issue affects bandit: from 1.4.0 before 1.14.0.\n\n## Affected\n\n- `bandit >= 1.4.0 < 1.14.0`\n- `mtrudel/bandit >= fff06efe3be962b484bd4d3eb339372fda5a231f < 220b9dfd27f9a21305be2afc75cbe585ddc24e7a`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n### Workarounds\n\nDisable HTTP/2 with http_2_options: [enabled: false], so that the vulnerable read path never runs.","depth":"twilight","depthScore":48,"depthScoreParts":{"impact":47.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}