CVE-2026-32689: Denial of Service in Phoenix Framework LongPoll Transport via NDJSON Payload Amplification
Vulnerability ID: CVE-2026-32689
CVSS Score: 8.7
Published: 2026-05-08
The Phoenix Framework contains a high-severity Denial of Service vulnerability in its LongPoll transport mechanism. The vulnerability is caused by unbounded memory allocation when processing Newline Delimited JSON (NDJSON) payloads. Unauthenticated attackers can trigger Out-Of-Memory conditions on the host BEAM node, terminating all active sessions by forcing the server to evaluate excessive newline characters.
TL;DR
Unauthenticated remote attackers can crash Phoenix Framework nodes by sending an 8MB NDJSON payload consisting entirely of newline characters to the LongPoll endpoint, triggering memory exhaustion via eager string evaluation.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-770
- Attack Vector: Network
- CVSS Base Score: 8.7 (High)
- EPSS Score: 0.00045
- Impact: Denial of Service (Node Crash)
- Exploit Status: Unexploited / PoC Only
- CISA KEV: No
Affected Systems
- Phoenix Framework (phoenix Hex package) < 1.7.22
- Phoenix Framework (phoenix Hex package) 1.8.x < 1.8.6
- Any Elixir application exposing Phoenix LiveView endpoints via LongPoll
-
Phoenix Framework: >= 1.7.0, < 1.7.22 (Fixed in:
1.7.22) -
Phoenix Framework: >= 1.8.0, < 1.8.6 (Fixed in:
1.8.6)
Code Analysis
Commit: 1a67c61
Server-side fix to replace String.split with String.splitter for lazy parsing.
Replaces String.split/2 and Enum.map with String.splitter/2 and Enum.find
Commit: 912ea18
Client-side fix to implement MAX_LONGPOLL_BATCH_SIZE in JavaScript.
Adds logic to split large longpoll message batches into chunks of 100
Mitigation Strategies
- Upgrade Phoenix framework to patched versions (1.7.22 or 1.8.6).
- Disable the LongPoll transport in Phoenix.Socket configurations if WebSocket connections are sufficient.
- Implement network-level size restrictions or WAF rules to drop anomalous POST requests containing excessive application/x-ndjson payloads.
Remediation Steps:
- Identify the current version of the
phoenixHex package running in your application environments. - Update the
mix.exsdependencies to require at least~> 1.7.22or~> 1.8.6. - Run
mix deps.getandmix deps.compileto fetch and compile the updated framework code. - If patching is delayed, modify the endpoint module to set
longpoll: falseinside the socket declarations.
References
- GitHub Advisory: GHSA-628h-q48j-jr6q
- Erlang Ecosystem Foundation CNA Record
- OSV Record for EEF-CVE-2026-32689
Read the full report for CVE-2026-32689 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)