http-proxy-middleware
CVE-2024-21536
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted HTTP request to target path
-
DeliveryTrigger micromatch throw in path filter
-
ExploitError escapes try-catch boundary
-
ExecutionUnhandled Promise rejection emitted
-
PersistNode.js process terminates
-
ImpactServer unavailable
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special configuration is required beyond having http-proxy-middleware installed and active on a Node.js HTTP server that is reachable by the attacker. The middleware must be evaluating request paths against a filter pattern using micromatch - the default and most common usage. Exploitation is unauthenticated (CVSS PR:N) and requires no user interaction (UI:N). The limiting factor is that impact is confined to availability: the attacker can crash the Node.js process but cannot read data or modify state. If the server runs under a process manager with automatic restart, availability impact may be reduced to brief service interruptions per request rather than full persistent downtime. The vulnerability does not affect applications that bypass the path-filter logic (e.g., those passing a function filter that never invokes micromatch), but such configurations are uncommon. |
| Impact | The CVSS 4.0 base score of 7.7 with supplemental signal E:P (proof-of-concept exists) accurately reflects a high-availability, low-complexity threat. The attack vector is network (AV:N), complexity is low (AC:L), no privileges or interaction are required (PR:N/UI:N), and availability impact is high (VA:H) - this is a one-step crash vector. EPSS at 1.02% (59th percentile) is moderate, suggesting exploitation is theoretically straightforward but not yet observed at widespread scale. No KEV listing means active exploitation by threat actors has not been confirmed by CISA, though the public POC lowers the bar for any opportunistic attacker. The real-world severity is primarily determined by how exposed the Node.js application is: internet-facing services using this middleware as a reverse proxy or API gateway face meaningful risk; internal-only or containerized services with auto-restart policies face a lower effective impact. The availability-only impact (C:N/I:N) limits the blast radius to service disruption, not data compromise. |
| Exploit ScenarioDerived | An attacker identifies a publicly accessible Node.js web application using http-proxy-middleware for request routing. Using the publicly available proof-of-concept (https://gist.github.com/mhassan1/28be67266d82a53708ed59ce5dc3c94a), the attacker crafts an HTTP GET request targeting a path that causes micromatch to throw during filter evaluation. The unhandled Promise rejection terminates the Node.js process, taking the entire application offline until it is manually restarted or a process manager intervenes. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 01, 2026
Denial of service in http-proxy-middleware allows unauthenticated remote attackers to crash the Node.js process by sending HTTP requests to specific paths that trigger an unhandled Promise rejection in the underlying micromatch path-matching library. Affected versions span the 2.x line (before 2.0.7) and the 3.x line (3.0.0 through before 3.0.3). A publicly available proof-of-concept exploit exists, and the CVSS 4.0 vector confirms full availability impact with no privileges or user interaction required, making this straightforward to weaponize against any exposed Node.js service using the middleware.
RemediationAI
Upgrade http-proxy-middleware to version 2.0.7 or later on the 2.x branch, or to 3.0.3 or later on the 3.x branch. The upstream fix is confirmed in commits 0b4274e and 788b21e4 on the chimurai/http-proxy-middleware GitHub repository. As a compensating control where immediate upgrade is not feasible, restrict access to the proxied service at the network or load-balancer layer so that arbitrary path inputs cannot reach the Node.js process. Additionally, configuring a process manager (such as PM2 or systemd) with automatic restart on crash reduces availability impact but does not eliminate the vulnerability. Note that auto-restart mitigates downtime but still permits repeated denial-of-service loops by a persistent attacker. No known configuration-level workaround removes the underlying flaw without patching.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
http-proxy-middleware (CPE: cpe:2.3:a:chimurai:http-proxy-middleware) is a widely-used Node.js middleware that proxies HTTP requests based on path filter rules, relying on the micromatch library for glob-pattern matching. The root cause (CWE-400: Uncontrolled Resource Consumption) is a missing error boundary around the context-matching call: when micromatch throws synchronously on certain path inputs, the error escapes as an unhandled Promise rejection. In Node.js, uncaught Promise rejections can terminate the entire process (behavior enforced by default since Node.js 15). The fix, visible in commit 0b4274e, wraps the contextMatcher.match() call in a try-catch, logging the error and returning false rather than allowing the exception to propagate. The vulnerable code path is in src/http-proxy-middleware.ts in the shouldProxy() method.
Know when Node.js gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P
Network-reachable, no auth, no interaction needed; only availability is impacted as the process crashes but no data is accessed or modified.
Primary rating from Vendor (snyk).
CVSS VectorVendor: snyk
Lifecycle Timeline
3DescriptionCVE.org
Versions of the package http-proxy-middleware before 2.0.7, from 3.0.0 and before 3.0.3 are vulnerable to Denial of Service (DoS) due to an UnhandledPromiseRejection error thrown by micromatch. An attacker could kill the Node.js process and crash the server by making requests to certain paths.
Executive ViewAI
http-proxy-middleware, a critical Node.js routing library, contains an unauthenticated denial-of-service vulnerability that permits remote attackers to crash application processes. Versions 2.x before 2.0.7 and 3.x before 3.0.3 are affected. Organizations using this middleware in production face immediate service availability risk, as exploitation requires no credentials and public attack code exists.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Affected Products (CPE)CVE.org
Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
A vulnerability in NuPoint Messenger (NPM) of Mitel MiCollab through 9.8.0.33 allows an unauthenticated attacker to cond
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB