CVE-2026-39804
Last modified
CVE-2026-39804 is a high-severity vulnerability rated 8.2/10 on the CVSS scale. Allocation of Resources Without Limits or Throttling vulnerability in mtrudel bandit allows unauthenticated remote denial of service via memory exhaustion when WebSocket permessage-deflate compression is enabled. 'Elixir.Bandit.WebSocket.PerMessageDeflate':inflate/2 in lib/bandit/websocket/permessage_deflate.ex calls :zlib.inflate/2 with no output-size cap, then materializes the entire decompressed payload as a single binary via IO.iodata_to_binary/1. The websocket_options.max_frame_size option only bounds the on-the-wire (compressed) frame size, not the decompressed output. EPSS estimates a 0.63% chance of exploitation in the next 30 days.
Description
Allocation of Resources Without Limits or Throttling vulnerability in mtrudel bandit allows unauthenticated remote denial of service via memory exhaustion when WebSocket permessage-deflate compression is enabled. 'Elixir.Bandit.WebSocket.PerMessageDeflate':inflate/2 in lib/bandit/websocket/permessage_deflate.ex calls :zlib.inflate/2 with no output-size cap, then materializes the entire decompressed payload as a single binary via IO.iodata_to_binary/1. The websocket_options.max_frame_size option only bounds the on-the-wire (compressed) frame size, not the decompressed output. A high-ratio compressed frame (e.g. uniform data at ~1024:1 ratio) can stay well under any wire-size limit while forcing GiB-scale heap allocations in the connection process before any application code runs. An unauthenticated attacker who can open a WebSocket connection can send a single such frame to exhaust the BEAM node's memory and trigger an OOM kill. This vulnerability requires both Bandit's server-level websocket_options.compress and the per-upgrade compress: true option passed to WebSockAdapter.upgrade/4 to be enabled. Stock Phoenix and LiveView applications are not affected as they default to compress: false. This issue affects bandit: from 0.5.9 before 1.11.0.
Metrics
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness Enumeration
References
Timeline
- Published
- Last Modified
- Status
- Deferred
Frequently Asked Questions
What is CVE-2026-39804?
How severe is CVE-2026-39804?
How do I fix CVE-2026-39804?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-3976A weakness has been identified in Tenda W3 1.0.0.3(2204). Im…8.8
- CVE-2026-3977A security vulnerability has been detected in projectsend up…6.3
- CVE-2026-3978A vulnerability was detected in D-Link DIR-513 1.10. The imp…8.8
- CVE-2026-3979A flaw has been found in quickjs-ng quickjs up to 0.12.1. Th…5.3
- CVE-2026-3980A vulnerability has been found in itsourcecode Online Doctor…9.8
- CVE-2026-39803Allocation of Resources Without Limits or Throttling vulnera…7.5
- CVE-2026-39805Inconsistent Interpretation of HTTP Requests vulnerability i…6.3
- CVE-2026-39806Loop with Unreachable Exit Condition ('Infinite Loop') vulne…7.5
- CVE-2026-39807Reliance on Untrusted Inputs in a Security Decision vulnerab…6.3
- CVE-2026-39808A improper neutralization of special elements used in an os …9.8
- CVE-2026-39809A improper neutralization of special elements used in an sql…6.7
- CVE-2026-3981A vulnerability was found in itsourcecode Online Doctor Appo…9.8
Are you affected by CVE-2026-39804?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
