{"id":"CVE-2026-115269","aliases":[],"cve":{"records":[{"id":"CVE-2026-115269","source":"EEF","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-10-23T10:15:01.872Z","published":"2026-10-26T13:30:24.621Z","modified":"2026-10-26T15:35:52.079Z"}],"publishers":[{"name":"EEF","role":"CNA","organizationId":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db","modified":"2026-10-26T13:30:24.621Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-10-26T15:35:52.079Z"}],"references":[{"url":"https://github.com/mtrudel/bandit/security/advisories/GHSA-p2qv-vx88-385x","tags":["vendor-advisory","related"],"source":"EEF"},{"url":"https://cna.erlef.org/cves/CVE-2026-115269.html","tags":["related"],"source":"EEF"},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-115269","tags":["related"],"source":"EEF"},{"url":"https://github.com/mtrudel/bandit/commit/fff06efe3be962b484bd4d3eb339372fda5a231f","tags":["related"],"source":"EEF"},{"url":"https://github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a","tags":["patch"],"source":"EEF"}],"weaknesses":[{"id":"CWE-835","description":"CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop')","source":"EEF"},{"id":"CWE-770","description":"CWE-770 Allocation of Resources Without Limits or Throttling","source":"EEF"}],"applicability":[{"source":"EEF","statements":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*","versionEndExcluding":"1.14.0","versionStartIncluding":"1.4.0","vulnerable":true}],"negate":false,"operator":"OR"}],"operator":"AND"}]}],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-10-26T15:02:19.174445Z","decisions":[{"name":"Exploitation","value":"none"},{"name":"Automatable","value":"yes"},{"name":"Technical Impact","value":"partial"}]}]},"title":"HTTP/2 WINDOW_UPDATE and SETTINGS frames reset the request body read timeout in Bandit","titleSource":"EEF","descriptionSource":"EEF","description":"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 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.","score":8.7,"severity":"high","published":"2026-10-26T13:30:24.621Z","modified":"2026-10-26T15:35:52.079Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"mtrudel","name":"bandit","platforms":[],"versions":[{"version":"1.4.0","status":"affected","lessThan":"1.14.0","versionType":"semver"}],"defaultStatus":"unaffected","packageURL":"pkg:hex/bandit","packageIdentity":{"ecosystem":"Hex","name":"bandit"},"cpes":["cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*"],"source":"EEF","url":"https://www.cve.org/CVERecord?id=CVE-2026-115269"},{"vendor":"mtrudel","name":"bandit","platforms":[],"versions":[{"version":"fff06efe3be962b484bd4d3eb339372fda5a231f","status":"affected","lessThan":"220b9dfd27f9a21305be2afc75cbe585ddc24e7a","versionType":"git"}],"defaultStatus":"unaffected","packageURL":"pkg:github/mtrudel/bandit","cpes":["cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*"],"source":"EEF","url":"https://www.cve.org/CVERecord?id=CVE-2026-115269"}],"remediation":[{"text":"Disable HTTP/2 with http_2_options: [enabled: false], so that the vulnerable read path never runs.","source":"EEF","url":"https://www.cve.org/CVERecord?id=CVE-2026-115269"}],"references":["https://github.com/mtrudel/bandit/security/advisories/GHSA-p2qv-vx88-385x","https://cna.erlef.org/cves/CVE-2026-115269.html","https://osv.dev/vulnerability/EEF-CVE-2026-115269","https://github.com/mtrudel/bandit/commit/fff06efe3be962b484bd4d3eb339372fda5a231f","https://github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a"],"sources":[{"name":"CVE","id":"CVE-2026-115269","modified":"2026-10-26T15:35:52.079Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-115269"}],"assessments":[{"source":"EEF","vector":"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","score":8.7}],"sourceAffected":[],"observedAt":"2026-10-29T14:34:15.792Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T05:25:31.914Z"},"coverage":[{"source":"NVD","status":"not-checked"},{"source":"GHSA","status":"not-checked"},{"source":"EUVD","status":"not-checked"},{"source":"EPSS","status":"not-checked"}],"evidence":[],"aiSummary":{"text":"Bandit versions 1.4.0 before 1.14.0 have an Allocation of Resources Without Limits or Throttling vulnerability, allowing an unauthenticated remote attacker to hold stream processes open indefinitely via WINDOW_UPDATE or empty SETTINGS frames. The attacker must send these frames while a Plug reads the request body. This can block the read_body function, along with the stream process and application resources.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T09:38:11.545Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-115269"}]}}