Cyber Resilience

CVE-2026-3520

DoS in Expressjs Multer ≤ 2.1.1

Published
04 March 2026
Modified
15 July 2026
Patch / advisory
CVSS Score v4 8.7
Click a component to see what it means
Raw vectorCVSS: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:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0071 50th percentile
Risk Priority 46 floored blend · peak EPSS

Summary

CVE-2026-3520 is a high-severity Uncontrolled Recursion (CWE-674) vulnerability in Expressjs Multer. Its CVSS base score is 8.7 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Network Denial of Service (T1498); ranked in the top 50% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to AC-10 (Concurrent Session Control) and SC-6 (Resource Availability) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-3520 is a denial-of-service vulnerability affecting Multer, a Node.js middleware library used for handling multipart/form-data, in versions prior to 2.1.1. The flaw enables an attacker to trigger a stack overflow by sending malformed requests, leading to application crashes. It is classified under CWE-674 (Uncontrolled Recursion) with a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), indicating high severity due to its impact on availability.

The vulnerability can be exploited remotely over the network by unauthenticated attackers with no privileges or user interaction required. By crafting and sending specially malformed multipart/form-data requests to an affected endpoint, an attacker can cause uncontrolled recursion in Multer's parsing logic, resulting in a stack overflow that denies service to legitimate users through process termination or severe performance degradation.

Advisories recommend upgrading to Multer version 2.1.1, which includes a patch addressing the issue, as detailed in the commit at https://github.com/expressjs/multer/commit/7e66481f8b2e6c54b982b34c152479e096ce2752 and the GitHub security advisory at https://github.com/expressjs/multer/security/advisories/GHSA-5528-5vmv-3xc2. No workarounds are available, and further details are provided by the OpenJSF CNA at https://cna.openjsf.org/security-advisories.html and the official CVE record at https://www.cve.org/CVERecord?id=CVE-2026-3520.

EU & UK References

Vulnerability Data

Multer is a node.js middleware for handling `multipart/form-data`. A vulnerability in Multer prior to version 2.1.1 allows an attacker to trigger a Denial of Service (DoS) by sending malformed requests, potentially causing stack overflow. Users should upgrade to version 2.1.1…

more

to receive a patch. No known workarounds are available.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1498 Network Denial of Service Impact
Adversaries may perform Network Denial of Service (DoS) attacks to degrade or block the availability of targeted resources to users.
T1499 Endpoint Denial of Service Impact
Adversaries may perform Endpoint Denial of Service (DoS) attacks to degrade or block the availability of services to users.
T1499.003 Application Exhaustion Flood Impact
Adversaries may target resource intensive features of applications to cause a denial of service (DoS), denying availability to those applications.
T1498.001 Direct Network Flood Impact
Adversaries may attempt to cause a denial of service (DoS) by directly sending a high-volume of network traffic to a target.
T1498.002 Reflection Amplification Impact
Adversaries may attempt to cause a denial of service (DoS) by reflecting a high-volume of network traffic to a target.
T1499.001 OS Exhaustion Flood Impact
Adversaries may launch a denial of service (DoS) attack targeting an endpoint's operating system (OS).
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-5079Same product: Expressjs Multer
CVE-2026-2359Same product: Expressjs Multer
CVE-2026-3304Same product: Expressjs Multer
CVE-2026-5038Same product: Expressjs Multer
CVE-2026-32141Shared CWE-674, CWE-770
CVE-2026-42039Shared CWE-674, CWE-770
CVE-2026-54297Shared CWE-674, CWE-770
CVE-2026-39396Shared CWE-674, CWE-770
CVE-2025-5253Shared CWE-770
CVE-2026-20103Shared CWE-770

Affected Assets

expressjs
multer
≤ 2.1.1

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 5 hardening rules · 3 OS baselines
Validate
Prove the fix (OWASP ASVS)
  • V15.4.4

Mitigating Controls (NIST 800-53 r5) AI

Directly enforces a hard limit on concurrent sessions, structurally preventing unbounded resource allocation.

Requires explicit allocation of resources by priority or quota, directly stopping unlimited allocation.

Input validation can reject or constrain data that would otherwise drive unbounded recursive calls.

Imposes a limit on consecutive invalid attempts, preventing one specific class of unbounded resource consumption.

DoS protection mechanisms limit the resource-exhaustion impact of uncontrolled recursion without eliminating the flaw.

System monitoring can observe anomalous resource consumption that signals runaway recursion after it begins.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.IR-04 mostly match
degrades

Monitoring capacity and taking action to maintain availability directly reduces unchecked resource allocation.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly prevent coding errors such as missing recursion limits or termination conditions.

DE.CM-09 partial match
prevents

Runtime monitoring of compute resources can detect excessive consumption caused by uncontrolled recursion.

ID.RA-01 partial match
prevents

Vulnerability identification processes can discover and record uncontrolled recursion flaws before deployment.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Baseline comparison of CPU, memory and bandwidth usage helps surface uncontrolled resource allocations before they cause service degradation.

finds

Security testing in development can detect excessive recursion via static analysis or fuzzing.

prevents

Capacity projections and elasticity measures ensure that allocation requests are bounded and can be throttled, reducing the window in which an attacker can force unbounded resource reservations.

mitigates

Defining retention periods and deletion schedules for backup copies prevents indefinite accumulation of data on storage media without corresponding resource-management controls.

mitigates

Architectural redundancy and automatic failover limit the impact of an attacker who forces excessive allocations, because spare capacity can absorb the load until the primary instance recovers.

prevents

Secure development life cycle requires controls that prevent uncontrolled recursion through design and code review.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (2 rules)
  • V-248552 OL 8 must be configured so that all network connections associated with SSH traffic terminate after becoming unresponsive. prevents CWE-770
  • V-248553 OL 8 must be configured so that all network connections associated with SSH traffic are terminated after 10 minutes of becoming unresponsive. prevents CWE-770
Oracle Linux 9 (2 rules)
  • V-271710 OL 9 must be configured so that all network connections associated with SSH traffic are terminated after 10 minutes of becoming unresponsive. prevents CWE-770
  • V-271709 OL 9 must be configured so that all network connections associated with SSH traffic terminate after becoming unresponsive. prevents CWE-770
RHEL 8 (1 rule)
  • V-230244 RHEL 8 must be configured so that all network connections associated with SSH traffic terminate after becoming unresponsive. prevents CWE-770

References