Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOpen single WebSocket/LongPoll connection
-
DeliveryStream unbounded phx_join messages
-
ExploitSpawn hundreds of thousands of channel processes
-
ExecutionExhaust BEAM process table
-
ImpactNode-wide denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The target endpoint must mount a Phoenix socket (Phoenix.Socket) that exposes a reachable channel transport - either WebSocket or LongPoll - to the attacker; endpoints without a mounted channel-capable socket are not affected. Given AV:N/AC:L/AT:N/PR:N/UI:N, there is no authentication, user interaction, or special configuration barrier on a default channel-enabled deployment: a single unauthenticated client can trigger it. The key limiting factor is exposure - only applications that actually serve Phoenix channels over WebSocket/LongPoll to untrusted networks are exploitable - and the affected version must be pre-1.5.15/1.6.17/1.7.24/1.8.9; note that once patched, the :max_channels_per_transport default of 100 caps the abuse. Standard network-layer defenses (per-IP connection caps, connection rate limiting) do NOT limit exploitation because the amplification occurs inside one connection. |
| Impact | The signals are internally consistent for a high-impact availability bug. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) confirms remote, unauthenticated, no-interaction exploitation with high availability impact and no confidentiality or integrity impact, yielding the 8.7 score. There is no CISA KEV listing and no POC referenced, so this is not confirmed actively exploited - treat it as a real, easily-triggered DoS rather than an in-the-wild threat. The notable amplifying factor, called out by the vendor, is that the attack happens inside one connection, so conventional per-IP connection caps and network-layer rate limiting do NOT mitigate it - this raises real-world priority above a typical volumetric DoS for anyone exposing Phoenix channels to untrusted clients. No EPSS score was provided in the input, so probabilistic exploitation likelihood cannot be quoted; prioritize based on the ease of exploitation and public-facing exposure of the socket endpoint instead. |
| Exploit ScenarioDerived | An unauthenticated attacker opens a single WebSocket (or LongPoll) connection to a public Phoenix endpoint that mounts a socket, then rapidly streams phx_join messages down that one connection, each spawning a persistent channel process. Within one connection the attacker spawns hundreds of thousands of processes until the BEAM process table is exhausted, at which point the node can no longer start processes and service is denied to all legitimate users. No exploit code was referenced in the provided data, but the single-connection amplification means the attack requires only trivial scripting and bypasses connection-count rate limits. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 07, 2026
Denial of service in the Phoenix Framework (Elixir) affects any endpoint mounting a Phoenix.Socket with a reachable WebSocket or LongPoll channel transport, in versions from 0.11.0 up to the fixed 1.5.15, 1.6.17, 1.7.24, and 1.8.9. Because transports place no cap on channels joined per connection, one unauthenticated client can stream unlimited phx_join messages down a single connection to spawn hundreds of thousands of channel processes and exhaust the BEAM process table, taking the whole node offline. Rated CVSS 4.0 8.7 (availability-only impact); no public exploit identified at time of analysis, though the mechanics are described in detail in the vendor advisory.
RemediationAI
Vendor-released patch: upgrade to the fixed release for your branch - 1.5.15, 1.6.17, 1.7.24, or 1.8.9 (or any later release) - per advisory GHSA-6983-jfq8-485w (https://github.com/phoenixframework/phoenix/security/advisories/GHSA-6983-jfq8-485w). The fix introduces a :max_channels_per_transport option that defaults to 100, bounding channels per transport process; review this default and tune it to your legitimate multiplexing needs, since applications that intentionally join many channels over one socket may need a higher value (raising it too far weakens the protection). Fix commits are c498ba8cf49f6accbbd0c643a5340b58db891218, d19ca0a8d9f82c130b7ed339b9f033433e2dea5e, a612100cd8a4279091abc1a2ef8fb98a6d01c0a1, and 16e295d2fccab185d1292322e2bee5d46c725c8a. If you cannot upgrade immediately, the effective compensating control is to bound BEAM resources and channel growth: raise the node's +P process limit ceiling and monitor process counts to fail loudly rather than silently exhausting, restrict or authenticate access to the socket endpoint so only trusted clients can send phx_join, or disable the WebSocket/LongPoll transport on endpoints that do not require real-time channels (trade-off: this breaks live features). Note that per-connection rate limiting at a load balancer will NOT help, since the amplification occurs within a single connection.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Phoenix is the dominant web framework for the Elixir language, running on the BEAM (Erlang virtual machine), where each channel and each socket connection is a lightweight process. Real-time features are delivered through Phoenix.Socket transports (WebSocket and LongPoll), and clients multiplex logical 'channels' over a single transport by sending phx_join messages, each handled by Elixir.Phoenix.Socket:handle_in/4 in lib/phoenix/socket.ex. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the socket process accepted an unbounded number of channel joins per connection, and every join starts a persistent channel process. Because the BEAM enforces a global maximum process count per node, unbounded per-connection channel spawning lets a single connection consume the node-wide process table rather than just its own connection's resources.
Know when Phoenix gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Remote, unauthenticated, low-complexity single-connection abuse of a default channel transport with no interaction; pure availability impact, so C:N/I:N/A:H.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Allocation of Resources Without Limits or Throttling vulnerability in phoenixframework phoenix (Phoenix.Socket module) allows an unauthenticated attacker to cause a denial of service against any endpoint that mounts a Phoenix socket with a reachable channel transport (WebSocket or LongPoll).
This vulnerability is associated with program files lib/phoenix/socket.ex and program routine 'Elixir.Phoenix.Socket':handle_in/4.
Phoenix transports do not limit the number of channels that a single transport process may join. Every phx_join message a client sends over one connection starts a persistent channel process, and the socket process accepts an unbounded number of them. A single unauthenticated client can therefore open one WebSocket or LongPoll connection and stream a large number of phx_join messages, spawning hundreds of thousands of channel processes over that one connection and eventually reaching the BEAM maximum process limit. Once the process table is exhausted the virtual machine can no longer start new processes, denying service to legitimate traffic across the whole node. Because the amplification happens inside a single connection, network-layer connection caps and rate limiting do not mitigate it.
The fix adds a :max_channels_per_transport option (default 100) that bounds the number of channels a single transport process can join, forcing abusive clients to open many connections instead, where external load balancers and reverse proxies can throttle them.
This issue affects phoenix: from 0.11.0 before 1.5.15, 1.6.17, 1.7.24, and 1.8.9.
Executive ViewAI
Phoenix Framework versions prior to 1.5.15, 1.6.17, 1.7.24, and 1.8.9 contain a denial-of-service vulnerability allowing a single unauthenticated attacker to exhaust server resources and crash production application nodes through unrestricted WebSocket channel spawning. Organizations deploying Phoenix with exposed WebSocket or LongPoll endpoints face immediate risk of complete application unavailability with no authentication barrier required.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Unauthenticated remote denial-of-service in Phoenix Framework 1.7.0-1.7.21 and 1.8.0-1.8.5 allows attackers to crash Eli
The Phoenix Framework versions 1.0.0 through 1.0.4, 1.1.0 through 1.1.6, 1.2.0, 1.2.2 and 1.3.0-rc.0 are vulnerable to u
Phoenix Framework's Presence JavaScript client allows any user with ordinary channel access to permanently break presenc
In Phoenix SCT WinFlash 1.1.12.0 through 1.5.74.0, the included drivers could be used by a malicious Windows application
socket/transport.ex in Phoenix before 1.6.14 mishandles check_origin wildcarding. Rated high severity (CVSS 7.5), this v
Session fixation in the Elixir/Phoenix authentication library ash_authentication (0.2.0 before 4.15.0, and 5.0.0-rc.0 be
Filesystem path disclosure in Tidewave Phoenix 0.8.0 through 0.9.1 lets a hostile web page read the framework's configur
EUVD-2026-42049
GHSA-6983-jfq8-485w
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB