<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Phoenix — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/phoenix/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Sat, 02 Nov 2024 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/phoenix/feed.xml" rel="self" type="application/rss+xml"/><item><title>Phoenix Long-Poll Transport Denial-of-Service Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-11-phoenix-longpoll-dos/</link><pubDate>Sat, 02 Nov 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-11-phoenix-longpoll-dos/</guid><description>An unauthenticated denial-of-service vulnerability in Phoenix's long-poll transport allows a remote client to exhaust server memory by sending a series of crafted HTTP requests, affecting LiveView apps with a public Longpoll socket or Phoenix.Socket with longpoll option.</description><content:encoded><![CDATA[<p>A denial-of-service vulnerability has been identified in the long-poll transport mechanism of the Phoenix framework. This vulnerability, designated as CVE-2026-32689, allows an unauthenticated remote attacker to cause a significant memory allocation on the server by sending malicious HTTP requests. The flaw stems from an unoptimized code path in the <code>application/x-ndjson</code> POST handling within the LongPoll transport. Since obtaining a session token requires only a GET request with a matching <code>Origin</code> header, exploitation is unauthenticated. This issue has been present in newly generated Phoenix projects since version 1.7.11, potentially exposing a wide range of applications to denial-of-service attacks. The affected versions are Phoenix versions &gt;= 1.7.0 and &lt; 1.7.22, as well as &gt;= 1.8.0 and &lt; 1.8.6.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker sends an HTTP GET request to the long-poll endpoint with a valid <code>Origin</code> header.</li>
<li>The server responds with a session token.</li>
<li>Attacker sends multiple concurrent HTTP POST requests with the <code>application/x-ndjson</code> content type to the long-poll endpoint, including the session token.</li>
<li>The server receives the POST requests and processes them through the unoptimized code path in the LongPoll transport.</li>
<li>The server allocates a large amount of memory for each request due to the NDJSON body splitting.</li>
<li>The memory consumption increases rapidly as the attacker sends more requests.</li>
<li>The server&rsquo;s memory resources are exhausted, leading to a denial-of-service condition.</li>
<li>Legitimate users are unable to access the application due to the server&rsquo;s unavailability.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability can lead to a complete denial-of-service, rendering Phoenix-based applications unresponsive. Applications using LiveView with public Longpoll sockets or <code>Phoenix.Socket</code> with the longpoll option are vulnerable. Because longpoll has been enabled by default in Phoenix projects since version 1.7.11, many applications are likely affected. The impact is a temporary outage, potentially leading to data loss or service disruption.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Phoenix version 1.7.22 or 1.8.6 or later to patch CVE-2026-32689 and mitigate the denial-of-service vulnerability.</li>
<li>Deploy the Sigma rule &ldquo;Detect CVE-2026-32689 Exploitation Attempt — High Volume NDJSON POST Requests&rdquo; to identify potential exploitation attempts by monitoring for a high volume of <code>application/x-ndjson</code> POST requests to the long-poll endpoint.</li>
<li>Monitor web server logs for an unusual number of POST requests with the <code>application/x-ndjson</code> content type, looking for potential indicators of exploitation.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>dos</category><category>phoenix</category><category>webserver</category></item></channel></rss>