CVE-2026-109924: undici vulnerable to Denial of Service via unbounded memory in the EventSource parser
undici is an HTTP client library for Node.js. In versions 6.5.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its 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 that the byte-based maxEventSize and maxResponseSize limits do not bound, and because maxResponseSize is enforced on the compressed body before decompression, a small compressed response can expand into enough retained memory to terminate the process. An application only needs to maintain an EventSource connection to an untrusted peer, which controls only the response, and availability is the only impact. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which bound the retained parser state independently of the byte limits, and users should upgrade to one of those versions or later. There is no workaround.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 6.29.1 - Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 7.30.1 - Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 8.12.2
Event History
Frequently Asked Questions
Which applications are exposed to this issue?
Applications using an affected undici version are exposed only if they maintain an EventSource connection to an untrusted or compromised Server-Sent Events peer. The peer needs control of the HTTP response; no attacker privileges or user interaction are required.
What can an attacker do?
A malicious SSE peer can cause unbounded retained parser state and exhaust the Node.js process memory, potentially terminating the process. The stated impact is limited to availability; confidentiality and integrity are not affected.
Do the existing EventSource size limits prevent exploitation?
No. The byte-based maxEventSize and maxResponseSize limits do not bound the affected per-field and per-chunk parser state, and maxResponseSize is applied to the compressed body before decompression.
What should teams do if they use an affected release?
Upgrade undici to 6.29.1, 7.30.1, 8.12.2, or a later version in the applicable release line. No workaround is available if patching cannot be performed.