Impact
Bandit’s WebSocket permessage‑deflate inflate path uses :zlib.inflate/2 without an output‑size cap, resulting in unbounded memory allocation when a high‑ratio compressed frame is received. An attacker can send a single compressed frame under any configured on‑wire size limit yet trigger gigabyte‑scale heap allocations, exhausting the BEAM node’s memory and causing an OOM kill. The flaw is a classic allocation of resources without limits or throttling (CWE-770).
Affected Systems
The vulnerability affects Bandit versions from 0.5.9 up to, but not including, 1.11.0. The flaw exists only when the server level websocket_options.compress is enabled and the WebSockAdapter.upgrade/4 call includes compress: true. Default Phoenix and LiveView applications are not impacted because they default to compress: false.
Risk and Exploitability
The CVSS score of 8.2 indicates high severity, and exploitation requires only an unauthenticated WebSocket connection. No EPSS score is available and it is not listed in the CISA KEV catalog, but the absence of authentication and the ability to exhaust memory make obtaining a successful denial of service straightforward for anyone able to open a WebSocket connection to a vulnerable Bandit instance.
OpenCVE Enrichment