Phoenix: Long-poll NDJSON body splitting causes large memory allocation
High severity
GitHub Reviewed
Published
May 5, 2026
in
phoenixframework/phoenix
•
Updated May 8, 2026
Package
Affected versions
>= 1.7.0, < 1.7.22
>= 1.8.0, < 1.8.6
Patched versions
1.7.22
1.8.6
Description
Published by the National Vulnerability Database
May 5, 2026
Published to the GitHub Advisory Database
May 8, 2026
Reviewed
May 8, 2026
Last updated
May 8, 2026
Summary
An unauthenticated denial-of-service vulnerability in Phoenix's long-poll transport allows a remote client to allocate a large amount of memory with a HTTP request. A handful of concurrent requests can be sufficient to let the node run out of memory.
See also https://cna.erlef.org/cves/CVE-2026-32689.html.
Details
The unoptimised code path exists on the
application/x-ndjsonPOST handling in the LongPoll transport. The endpoint requires only a session token, which any client can obtain by issuing a GET to the same URL with a matchingOriginheader, so exploitation is unauthenticated.Impact
Anyone who runs a LiveView app with a public Longpoll socket or uses a
Phoenix.Socketwith longpoll option.Longpoll has been enabled for newly generated Phoenix projects since Phoenix 1.7.11.
References