Skip to main content

http-proxy-middleware CVE-2024-21536

HIGH
Uncontrolled Resource Consumption (CWE-400)
2024-10-19 report@snyk.io
7.7
CVSS 4.0 · Vendor: snyk
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send crafted HTTP request to target path
  2. Delivery
    Trigger micromatch throw in path filter
  3. Exploit
    Error escapes try-catch boundary
  4. Execution
    Unhandled Promise rejection emitted
  5. Persist
    Node.js process terminates
  6. Impact
    Server 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 1.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

npm http-proxy-middleware fix: 2.0.7, 3.0.3

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

Vendor (snyk) PRIMARY 7.7 HIGH
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
vuln.today AI 7.5 HIGH

Network-reachable, no auth, no interaction needed; only availability is impacted as the process crashes but no data is accessed or modified.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (snyk).

CVSS VectorVendor: snyk

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Analysis Updated
Aug 01, 2026 - 16:28 vuln.today
v1 - CVSS changed
CVSS changed
Aug 01, 2026 - 16:22 NVD
7.5 (HIGH) 7.7 (HIGH)
CVE Published
Oct 19, 2024 - 05:15 nvd
HIGH 7.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
1.0%
Top 41% exploitable
Prevalence
High
core dependency in webpack-dev-server, create-react-app, and many Node.js API gateways
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 1.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

59
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +38
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)CVE.org

cpe:2.3:a:chimurai:http-proxy-middleware:*:*:*:*:*:*:*:*
cpe:2.3:a:chimurai:http-proxy-middleware:*:*:*:*:*:*:*:*
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2024-35286 CRITICAL POC
9.8 Oct 21

A vulnerability in NuPoint Messenger (NPM) of Mitel MiCollab through 9.8.0.33 allows an unauthenticated attacker to cond

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy