Skip to main content
Press slash or control plus K to focus the search. Use the arrow keys to navigate results and press enter to open a threat.
Reconnecting to live updates…

CVE-2024-22025: Vulnerability in NodeJS Node

0
Medium
VulnerabilityCVE-2024-22025cvecve-2024-22025
Published: Tue Mar 19 2024 (03/19/2024, 04:32:34 UTC)
Source: CVE
Vendor/Project: NodeJS
Product: Node

Description

A vulnerability in Node.js has been identified, allowing for a Denial of Service (DoS) attack through resource exhaustion when using the fetch() function to retrieve content from an untrusted URL. The vulnerability stems from the fact that the fetch() function in Node.js always decodes Brotli, making it possible for an attacker to cause resource exhaustion when fetching content from an untrusted URL. An attacker controlling the URL passed into fetch() can exploit this vulnerability to exhaust memory, potentially leading to process termination, depending on the system configuration.

AI-Powered Analysis

AILast updated: 11/05/2025, 01:04:53 UTC

Technical Analysis

CVE-2024-22025 is a vulnerability in the Node.js runtime environment affecting all versions from 4.0 to 21.0. The flaw arises from the fetch() function's handling of Brotli-encoded content. Specifically, fetch() automatically decompresses Brotli-encoded responses without sufficient safeguards, allowing an attacker who controls the URL input to cause excessive memory consumption. This resource exhaustion can lead to Denial of Service by crashing the Node.js process or severely degrading its performance. The vulnerability is classified under CWE-404 (Improper Resource Shutdown or Release). Exploitation requires an attacker to induce a fetch() call with a maliciously crafted URL, which means user interaction or application logic that fetches untrusted URLs is necessary. The CVSS v3.0 score is 6.5 (medium severity), reflecting network attack vector, low attack complexity, no privileges required, but requiring user interaction, and impacting availability only. There are no known public exploits or patches at the time of publication, but the risk is significant for applications that fetch external content without validation. This vulnerability highlights the importance of input validation and resource management in server-side JavaScript environments.

Potential Impact

For European organizations, the primary impact is on availability of Node.js-based applications and services that use the fetch() API to retrieve external content. Successful exploitation can cause application crashes or degraded performance due to memory exhaustion, potentially disrupting business operations, customer-facing services, or internal tools. This can lead to downtime, loss of productivity, and reputational damage. Since Node.js is widely used in web servers, microservices, and serverless functions, the attack surface is broad. Organizations relying on third-party or user-supplied URLs in fetch() calls are particularly vulnerable. While confidentiality and integrity are not directly impacted, the availability disruption can indirectly affect service reliability and compliance with service-level agreements (SLAs). The lack of known exploits reduces immediate risk, but proactive mitigation is critical to prevent future attacks.

Mitigation Recommendations

1. Implement strict validation and sanitization of all URLs passed to the fetch() function to ensure they originate from trusted sources. 2. Employ allowlists for external domains to restrict fetch() calls to known safe endpoints. 3. Monitor and limit memory usage of Node.js processes using container resource limits or OS-level controls to mitigate impact of resource exhaustion. 4. Use timeouts and abort controllers with fetch() to prevent long-running or stalled requests. 5. Update Node.js to patched versions as soon as they become available from the Node.js project. 6. Review application logic to minimize reliance on fetching untrusted external content. 7. Employ runtime monitoring and alerting for unusual memory consumption patterns in Node.js services. 8. Consider isolating fetch() calls in separate processes or containers to contain potential crashes. 9. Educate developers about the risks of untrusted input in fetch() and Brotli decoding behavior. 10. Engage with Node.js security advisories and subscribe to vulnerability notifications for timely updates.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
hackerone
Date Reserved
2024-01-04T01:04:06.574Z
Cisa Enriched
true
Cvss Version
3.0
State
PUBLISHED

Threat ID: 682d983ac4522896dcbed5df

Added to database: 5/21/2025, 9:09:14 AM

Last enriched: 11/5/2025, 1:04:53 AM

Last updated: 12/4/2025, 1:45:34 PM

Views: 35

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats