Quadratic bignum parsing of Content-Length and Host port values in Bandit
What fixes it
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Inefficient Algorithmic Complexity vulnerability in the header integer parser of mtrudel bandit allows an unauthenticated remote attacker to consume server CPU via a content-length value or a Host or :authority port made of thousands of digits.
Bandit.Headers.parse_integer/2 in lib/bandit/headers.ex builds the number one digit at a time with no limit on the digit count, allocating a new bignum at each step, so one value costs time quadratic in its length. It runs on raw request input over HTTP/1 and HTTP/2, before any range check. Over HTTP/2, a 4,000-digit value can be stored once in the HPACK dynamic table and re-sent on each new stream for about one byte: 124 KB of traffic kept the server busy for 27.9 s.
This issue affects bandit: from 1.0.0-pre.7 before 1.14.0.
Text from CVE List
Affected versions 2
- banditaffected: 1.0.0-pre.7 before 1.14.0CVE List
- banditaffected: e0c8c0c30af9b0f57d8aafac37ddd9294363a8be before 220b9dfd27f9a21305be2afc75cbe585ddc24e7aCVE List
References 5
- github.com/mtrudel/bandit/commit/e0c8c0c30af9b0f57d8aafac37ddd9294363a8beFixvia CVE List
- github.com/mtrudel/bandit/commit/220b9dfd27f9a21305be2afc75cbe585ddc24e7aFixvia CVE List
- github.com/mtrudel/bandit/security/advisories/GHSA-29cr-8477-rg6rAdvisoryvia CVE List
- cna.erlef.org/cves/CVE-2026-113436.htmlReferencevia CVE List
- osv.dev/vulnerability/EEF-CVE-2026-113436Referencevia CVE List