Vulnerability advisory

GHSA-628h-q48j-jr6q

Phoenix: Long-poll NDJSON body splitting causes large memory allocation

Published Updated OSV record ↗

Also known as CVE-2026-32689EEF-CVE-2026-32689

Severity
  • CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Affected versions

Description

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-ndjson POST 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 matching Origin header, so exploitation is unauthenticated.

Impact

Anyone who runs a LiveView app with a public Longpoll socket or uses a Phoenix.Socket with longpoll option. Longpoll has been enabled for newly generated Phoenix projects since Phoenix 1.7.11.

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools