Phoenix: Unbounded channel joins per transport enables DoS over few connections
High severity
GitHub Reviewed
Published
Jul 7, 2026
in
phoenixframework/phoenix
•
Updated Sep 3, 2026
Package
Affected versions
>= 0.11.0, < 1.5.15
>= 1.6.0-rc.0, < 1.6.17
>= 1.7.0-rc.0, < 1.7.24
>= 1.8.0-rc.0, < 1.8.9
Patched versions
1.5.15
1.6.17
1.7.24
1.8.9
Description
Published by the National Vulnerability Database
Jul 7, 2026
Published to the GitHub Advisory Database
Sep 3, 2026
Reviewed
Sep 3, 2026
Last updated
Sep 3, 2026
Summary
Phoenix transports do not limit the number of channels in a given connection, making it easy to spawn hundreds of thousands of processes over a single connection, and, eventually reaching the max processes VM limit. The solution is to limit the number of channels per transport, so an attacker needs to start new HTTP/WebSocket connections, allowing third-party services to apply rate limits and intervene more easily.
Impact
An unauthenticated remote attacker can cause a denial of service against any Phoenix app that exposes LongPoll/WebSocket transports.
References