
🚨High - Bandit WebSocket Reassembly Quadratic-Complexity DoS (CVE-2026-65623) Bandit, the pure-Elixir web server used by default in Phoenix, reassembles fragmented WebSocket messages inefficiently. Its oversize_message?/2 guard appends each continuation frame to a left-nested iolist and re-measures the whole buffer with IO.iodata_length/1 on every frame, making reassembly O(n^2) in frame count. The max_fragmented_message_size limit bounds total bytes but not frame count, and each frame can carry a single byte, so an unauthenticated attacker can send millions of tiny continuation frames over modest bandwidth to pin a CPU core for minutes to hours. Many connections starve the whole server; the read timeout can't preempt the work inside one callback. CVSS 8.7, public PoC. 👉Upgrade Bandit to 1.12.1.
Post summary
A high‑severity Denial‑of‑Service flaw in Bandit’s WebSocket reassembly is publicly demonstrable; upgrading to version 1.12.1 mitigates the issue.

