CVE-2026-109924
Medium · 5.9CVSS
5.9
EPSS
0.3%
Published
Oct 15, 2026
CISA due date
—
Cloudanix analysis
A flaw in a popular Node.js networking library can let a malicious website or server crash an application by sending specially crafted data over a live connection, making the program stop working until restarted.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The EventSource parser in undici retains unbounded per-field and per-chunk state when a malicious SSE peer sends millions of tiny completed data fields lacking blank separators or a single unfinished line split across many chunks; byte-based maxEventSize and maxResponseSize limits do not constrain this growth and maxResponseSize is applied to the compressed body before decompression, allowing a small compressed response to expand into process-terminating memory consumption.
Why it matters to the business
An application maintaining an EventSource connection to an untrusted peer can be forced into denial of service, terminating the Node.js process and disrupting availability of any service that depends on undici-based HTTP clients; the flaw affects Red Hat nodejs24-main and nodejs26-main packages with CISA remediation deadlines not yet triggered and low exploit maturity.
How an attack unfolds
An attacker who controls or compromises an SSE server sends a crafted response containing either millions of tiny completed fields without separators or one long unfinished line delivered in many small chunks; the undici EventSource parser accumulates unbounded state that evades the existing size limits, exhausting memory and crashing the process; no authentication or user interaction is required beyond the victim maintaining the connection.
How to fix it
Upgrade undici to 6.29.1, 7.30.1 or 8.12.2 or later; for Red Hat nodejs24-main apply 24.21.0-1.5.hum1 (RHSA-2026:84706) and for nodejs26-main apply 26.12.1-0.1.hum1 (RHSA-2026:84706); no workaround exists.
How to confirm the fix worked
Confirm the installed undici or Red Hat nodejs package version meets or exceeds the fixed releases listed above; test EventSource connections against a server that emits the previously unbounded patterns and verify memory usage remains stable within configured limits.
Typical attack path
- Attacker sets up or compromises an SSE endpoint that the target application connects to via undici EventSource
- Attacker transmits a response consisting of millions of tiny completed data fields lacking blank event separators or a single unfinished line split across many chunks
- Parser retains growing per-field and per-chunk state that exceeds available memory because limits are not applied to the retained parser structures
- Process memory is exhausted, terminating the Node.js application and causing denial of service
How to detect it
Review application and system logs for unexpected Node.js process terminations or out-of-memory events on hosts running undici EventSource clients; correlate with network traffic showing large numbers of small SSE data chunks from external peers; examine process memory dumps or core files for signs of parser state accumulation if available.
What your security team should do
- Prioritize patching Red Hat nodejs24-main and nodejs26-main packages to the versions in RHSA-2026:84706 within normal change windows given the 11-day publication age and stable low EPSS
- Inventory all applications using undici EventSource against untrusted endpoints and schedule upgrades to 6.29.1/7.30.1/8.12.2 or later
- Monitor for future EPSS increases or KEV inclusion and adjust urgency accordingly
The record
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 packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119699 WPGraphQL Smart Cache before 2.3.3 contains an uncontrolled resource consumption… CWE-770
- CVE-2026-119701 WPGraphQL before 2.24.1 contains a missing rate limiting vulnerability that allows… CWE-770
- CVE-2026-119036 Business::GoCardless versions before 1.01 for Perl allow memory exhaustion by flattening… CWE-770
- CVE-2026-116128 Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded… CWE-770
- CVE-2026-107312 Allocation of Resources Without Limits or Throttling vulnerability in Drupal Examples for… CWE-770
- CVE-2026-119209 pypdf is a free and open-source pure-python PDF library. CWE-770
- CVE-2026-90991 IBM Langflow OSS 1.0.0 through 1.12.4 could allow a remote authenticated attacker to… CWE-770
- CVE-2026-119134 Wasmtime before 36.0.18, 37.0.0 before 48.0.6, and 49.0.0 before 49.0.3 caps… CWE-770