8.7
HIGH CVSS 4.0
CVE-2026-32689
Long-poll NDJSON body splitting causes unbounded memory allocation in Phoenix
Description

Allocation of Resources Without Limits or Throttling vulnerability in phoenixframework phoenix allows a denial of service via the long-poll transport's NDJSON body handling. In 'Elixir.Phoenix.Transports.LongPoll':publish/4, when a POST request is received with Content-Type: application/x-ndjson, the request body is split on newline characters using String.split/2 with no limit on the number of resulting segments. An attacker can send a body consisting entirely of newline bytes, causing a 1:1 amplification into a list of empty binaries — a 1 MB body produces approximately one million list elements, an 8 MB body approximately 8.4 million. Each element is then walked by Enum.map, materializing another list of the same size. This exhausts BEAM memory and schedulers, crashing the node and terminating all active sessions. A session token required to reach the vulnerable endpoint is freely obtainable by any client via an unauthenticated GET request to the same URL with a matching Origin header, making this attack effectively unauthenticated. This issue affects phoenix: from 1.7.0 before 1.7.22 and 1.8.6.

INFO

Published Date :

May 5, 2026, 4:16 p.m.

Last Modified :

Oct. 26, 2026, 7:10 p.m.

Remotely Exploit :

Yes !

Source :

6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Affected Products

The following products are affected by CVE-2026-32689 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Phoenixframework phoenix
CVSS Scores
The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and displays CVSS scores from various sources for each CVE.
Score Version Severity Vector Exploitability Score Impact Score Source
CVSS 134c704f-9b21-4f2e-91b3-4a467353bcc0
CVSS 4.0 HIGH 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
CVSS 4.0 HIGH 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Solution
Apply patches to phoenix to fix denial of service vulnerability in long-poll transport.
  • Update phoenix to version 1.7.22 or later.
  • Update phoenix to version 1.8.6 or later.
Public PoC/Exploit Available at Github

CVE-2026-32689 has a 1 public PoC/Exploit available at Github. Go to the Public Exploits tab to see the list.

CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-32689 is associated with the following CWEs:

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

None

Elixir Shell Erlang C++ Makefile

Updated: 3 months, 2 weeks ago
6 stars 4 fork 4 watcher
Born at : April 11, 2026, 5:14 a.m. This repo has been linked 1 different CVEs too.

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-32689 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-32689 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • CVE Translated by [email protected]

    Oct. 26, 2026

    Action Type Old Value New Value
    Added Translation Title: phoenix de phoenixframework, Description: Vulnerabilidad de asignación de recursos sin límites ni estrangulamiento en phoenixframework phoenix permite una denegación de servicio a través del manejo del cuerpo NDJSON del transporte long-poll. En ’Elixir.Phoenix.Transports.LongPoll’:publish/4, cuando se recibe una solicitud POST con Content-Type: application/x-ndjson, el cuerpo de la solicitud se divide en caracteres de nueva línea usando String.split/2 sin límite en el número de segmentos resultantes. Un atacante puede enviar un cuerpo que consiste enteramente en bytes de nueva línea, causando una amplificación 1:1 en una lista de binarios vacíos - un cuerpo de 1 MB produce aproximadamente un millón de elementos de lista, un cuerpo de 8 MB aproximadamente 8.4 millones. Cada elemento es luego recorrido por Enum.map, materializando otra lista del mismo tamaño. Esto agota la memoria y los planificadores de BEAM, colapsando el nodo y terminando todas las sesiones activas. Un token de sesión requerido para alcanzar el endpoint vulnerable es libremente obtenible por cualquier cliente a través de una solicitud GET no autenticada a la misma URL con una cabecera Origin coincidente, haciendo que este ataque sea efectivamente no autenticado. Este problema afecta a phoenix: desde 1.7.0 antes de 1.7.22 y 1.8.6.
  • CVE Modified by 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

    Jun. 17, 2026

    Action Type Old Value New Value
    Added Affected [{'cpes': ['cpe:2.3:a:phoenixframework:phoenix:*:*:*:*:*:*:*:*'], 'repo': 'https://github.com/phoenixframework/phoenix', 'vendor': 'phoenixframework', 'modules': ["'Elixir.Phoenix.Transports.LongPoll'"], 'product': 'phoenix', 'versions': [{'status': 'affected', 'version': '1.7.0', 'lessThan': '1.7.22', 'versionType': 'semver'}, {'status': 'affected', 'version': '1.8.0', 'lessThan': '1.8.6', 'versionType': 'semver'}], 'packageURL': 'pkg:hex/phoenix', 'packageName': 'phoenix', 'programFiles': ['lib/phoenix/transports/long_poll.ex'], 'collectionURL': 'https://repo.hex.pm', 'defaultStatus': 'unaffected', 'programRoutines': [{'name': "'Elixir.Phoenix.Transports.LongPoll':publish/4"}]}, {'cpes': ['cpe:2.3:a:phoenixframework:phoenix:*:*:*:*:*:*:*:*'], 'repo': 'https://github.com/phoenixframework/phoenix', 'vendor': 'phoenixframework', 'modules': ["'Elixir.Phoenix.Transports.LongPoll'"], 'product': 'phoenix', 'versions': [{'status': 'affected', 'changes': [{'at': '1a67c61ff9ce0a7711662ac7354861917a7c80f7', 'status': 'unaffected'}, {'at': '912ea181fd247c21dbcc49fb97d0053b947d81bf', 'status': 'unaffected'}], 'version': '2674c6ea30634667f9b09966b90269393b445953', 'lessThan': '*', 'versionType': 'git'}], 'packageURL': 'pkg:github/phoenixframework/phoenix', 'packageName': 'phoenixframework/phoenix', 'programFiles': ['lib/phoenix/transports/long_poll.ex'], 'collectionURL': 'https://github.com', 'defaultStatus': 'unaffected', 'programRoutines': [{'name': "'Elixir.Phoenix.Transports.LongPoll':publish/4"}]}]
  • CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0

    Jun. 17, 2026

    Action Type Old Value New Value
    Added SSVC {'id': 'CVE-2026-32689', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'yes'}, {'technicalImpact': 'partial'}], 'version': '2.0.3', 'timestamp': '2026-05-05T18:37:12.444769Z'}
  • New CVE Received by 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

    May. 05, 2026

    Action Type Old Value New Value
    Added Description Allocation of Resources Without Limits or Throttling vulnerability in phoenixframework phoenix allows a denial of service via the long-poll transport's NDJSON body handling. In 'Elixir.Phoenix.Transports.LongPoll':publish/4, when a POST request is received with Content-Type: application/x-ndjson, the request body is split on newline characters using String.split/2 with no limit on the number of resulting segments. An attacker can send a body consisting entirely of newline bytes, causing a 1:1 amplification into a list of empty binaries — a 1 MB body produces approximately one million list elements, an 8 MB body approximately 8.4 million. Each element is then walked by Enum.map, materializing another list of the same size. This exhausts BEAM memory and schedulers, crashing the node and terminating all active sessions. A session token required to reach the vulnerable endpoint is freely obtainable by any client via an unauthenticated GET request to the same URL with a matching Origin header, making this attack effectively unauthenticated. This issue affects phoenix: from 1.7.0 before 1.7.22 and 1.8.6.
    Added CVSS V4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
    Added CWE CWE-770
    Added Reference https://cna.erlef.org/cves/CVE-2026-32689.html
    Added Reference https://github.com/phoenixframework/phoenix/commit/1a67c61ff9ce0a7711662ac7354861917a7c80f7
    Added Reference https://github.com/phoenixframework/phoenix/commit/912ea181fd247c21dbcc49fb97d0053b947d81bf
    Added Reference https://github.com/phoenixframework/phoenix/security/advisories/GHSA-628h-q48j-jr6q
    Added Reference https://osv.dev/vulnerability/EEF-CVE-2026-32689
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.