Read the docs
TI-2026-31008 Aliases CVE-2026-42788GHSA-q6v9-r226-v65f

HTTP/2 frame size limit checked after body is buffered in bandit

Priority HIGH 70CWE-770Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · Low
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-770.

Summary

Allocation of Resources Without Limits or Throttling vulnerability in mtrudel bandit allows unauthenticated memory exhaustion via oversized HTTP/2 frames. 'Elixir.Bandit.HTTP2.Frame':deserialize/2 in lib/bandit/http2/frame.ex checks the SETTINGS_MAX_FRAME_SIZE limit only after pattern-matching payload::binary-size(length), which requires the entire frame body to be present in memory before either the accept or reject clause can fire. A peer that announces a frame length up to the 24-bit maximum (~16 MiB) causes the server to buffer that entire body before the size guard is evaluated, regardless of the max_frame_size negotiated during the HTTP/2 handshake (default 16 KiB per RFC 9113). An unauthenticated attacker holding many concurrent connections can force the server to buffer far more memory than the negotiated frame size limit should permit, leading to memory pressure and potential denial of service. This issue affects bandit: from 0.3.6 before 1.11.0.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.0051 43rd percentileScored 2026-11-07
Fix Fixed bandit (mtrudel): 1.11.0bandit (Hex): 1.11.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
mtrudelbandit0.3.6 to before 1.11.01.11.0Patch availableCNA
—bandit (Hex)0.3.5 to before 1.11.01.11.0Patch availableGHSA-q6v9-r226-v65f
  • bandit Vendormtrudel Affected 0.3.6 to before 1.11.0 Fixed in 1.11.0 Patch available CNA
  • bandit (Hex) Vendor— Affected 0.3.5 to before 1.11.0 Fixed in 1.11.0 Patch available GHSA-q6v9-r226-v65f

CPE names CNA · 1

CPEVersionsRoleVendor
cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:*——mtrudel
  • cpe:2.3:a:mtrudel:bandit:*:*:*:*:*:*:*:* Versions — — ·mtrudel

Remediation

  • Fix · CNA bandit (mtrudel) Fixed in 1.11.0
  • Fix · GHSA-q6v9-r226-v65f bandit (Hex) Fixed in 1.11.0 Advisory →

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    mtrudel bandit 1.11.0

    5 records Highest priority Priority HIGH 5 HIGH

    Other records, highest priority first

    • TI-2026-31007 WebSocket fragmented message reassembly unbounded in banditPriority HIGH 77
    • TI-2026-28687 WebSocket permessage-deflate inflate has no output-size cap in banditPriority HIGH 75
    • TI-2026-28690 Client-supplied URI scheme trusted without transport verification in banditPriority HIGH 67

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-42788
  2. 2026-10-03 Alias added: GHSA-q6v9-r226-v65f

References

  • TI-2026-81989 HTTP/2 request bodies made of 1-byte DATA frames amplify memory use in Bandit CVSS 4.0HIGH 8.7
  • TI-2026-74311 Bandit HTTP/2 send timers reset, letting trickles pin stream processes CVSS 4.0HIGH 8.7
  • TI-2026-52571 HTTP/2 connection-window starvation pins Plug processes indefinitely in Bandit CVSS 4.0HIGH 8.7
  • TI-2026-46780 Quadratic CPU blow-up reassembling fragmented WebSocket messages in Bandit CVSS 4.0HIGH 8.7
  • TI-2026-31007 WebSocket fragmented message reassembly unbounded in bandit CVSS 4.0HIGH 8.7
  • TI-2026-28689 HTTP/1 chunked decoder infinite loop on requests with trailer fields in bandit CVSS 4.0HIGH 8.7
See all 23 →

Sources