Packages / undici / Security

ModerateVulnerabilityGHSA-4qv8-2p9j-2685CVE-2026-109924Published 23 Oct 2026

undici vulnerable to Denial of Service via unbounded memory in the EventSource parser

Affected releases · undici

  • 8.x8.0.0 – 8.12.1Fixed in 8.12.2
  • 7.x7.0.0 – 7.30.0Fixed in 7.30.1
  • 6.x6.5.0 – 6.29.0Fixed in 6.29.1

On 8.x, the newest line:

npm install undici@8.12.2
8.x
  1. Affected

    8.0.0 – 8.12.1

    22 releases

  2. Fixed

    8.12.2 – 8.12.3

    2 releases, latest

7.x
  1. Affected

    7.0.0 – 7.30.0

    50 releases

  2. Fixed

    7.30.1

    1 release

6.x
  1. Not affected

    6.0.0 – 6.4.0

    7 releases

  2. Affected

    6.5.0 – 6.29.0

    49 releases

  3. Fixed

    6.29.1

    1 release

284 stable releases of undici, oldest to newest, one row per major.

Is your project affected?

Paste your package.json, or type the range you declare for undici. It is read in your browser and sent nowhere.

What happens

Impact

undici's EventSource client can be driven to exhaust process memory by a malicious or compromised Server-Sent Events peer. By sending millions of tiny completed data: fields with no blank event separator, or a single unfinished line split across many chunks, the parser retains a growing amount of per-field and per-chunk state. The byte-based maxEventSize and maxResponseSize limits do not bound that retained state, and maxResponseSize is enforced on the compressed body before decompression, so a small compressed response can expand into enough retained memory to terminate the process. The application only needs to maintain an EventSource connection to an untrusted peer, which controls only the response. Availability is the only impact.

Patches

Upgrade to 6.29.1, 7.30.1, or 8.12.2, which bound the retained EventSource parser state (the number of data fields and buffered chunks, the unfinished-line length, and per-field byte totals) independently of the byte limits.

Workarounds

None.