CVE-2026-3520: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-3520 is a Denial of Service (DoS) vulnerability in Multer, a Node.js middleware for handling multipart/form-data requests, caused by uncontrolled recursion. An unauthenticated remote attacker can send malformed multipart requests to trigger a stack overflow, crashing or hanging the affected application. All Multer versions prior to 2.1.1 for Node.js are affected. The vulnerability was disclosed on March 4, 2026, with a patch released the same day. It carries a CVSS v4.0 base score of 8.7 (High) and a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory, Red Hat).

Technical details

The root cause is uncontrolled recursion (CWE-674) in Multer's lib/remove-uploaded-files.js. When cleaning up uploaded files, the handleFile function calls itself synchronously via a callback chain — handleFile(idx) → remove → cb() → handleFile(idx+1) — without yielding to the event loop. When processing a large number of files (e.g., 25,000), this deep synchronous call stack exceeds Node.js's maximum call stack size, resulting in a "Maximum call stack size exceeded" error and application crash. The fix wraps the recursive call in setImmediate() to defer execution and break the synchronous call chain (GitHub Commit, GitHub Advisory). No authentication or special privileges are required; the attack is network-accessible with low complexity.

Impact

Successful exploitation results in a complete loss of availability for any Node.js application using a vulnerable version of Multer, as the stack overflow causes the application process to crash or become unresponsive. There is no impact on confidentiality or data integrity. Downstream IBM products incorporating Multer — including IBM API Connect, IBM Cloud Pak for Integration, IBM Cloud Pak for AIOps, IBM DevOps Solution Workbench, and IBM watsonx Orchestrate — are also affected, broadening the potential impact across enterprise environments (GitHub Advisory, Red Hat).

Exploitability

No public proof-of-concept exploit code has been reported, and there is no evidence of in-the-wild exploitation at this time (Feedly). The EPSS score is approximately 0.042–0.067%, placing it in the lower percentiles for near-term exploitation likelihood (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. However, the attack requires no authentication and is trivially executable over the network, making it a low-barrier DoS vector against any exposed file upload endpoint.

Exploitation steps

  1. Reconnaissance: Identify web applications built on Node.js/Express that expose file upload endpoints (e.g., /upload, /api/files) and are likely using Multer versions prior to 2.1.1.
  2. Craft malformed multipart request: Construct an HTTP POST request with a Content-Type: multipart/form-data header containing a large number of file fields (e.g., 25,000 or more entries) or a malformed multipart body designed to trigger the cleanup path in Multer.
  3. Send the request: Submit the crafted request to the target file upload endpoint using tools such as curl, Python's requests library, or a custom script.
  4. Trigger stack overflow: Multer's remove-uploaded-files.js processes the files synchronously in a recursive callback chain, exhausting the Node.js call stack and throwing a "Maximum call stack size exceeded" error.
  5. Achieve DoS: The Node.js process crashes or becomes unresponsive, rendering the application unavailable to legitimate users (GitHub Commit, GitHub Advisory).

Indicators of compromise

  • Logs: Node.js application logs showing RangeError: Maximum call stack size exceeded errors originating from lib/remove-uploaded-files.js or Multer-related stack frames.
  • Logs: Web server access logs showing repeated POST requests to file upload endpoints with unusually large Content-Length values or high numbers of multipart fields from a single source IP.
  • Process: Sudden termination or restart of the Node.js application process (e.g., PM2 or systemd restart events) coinciding with multipart upload requests.
  • Network: Anomalous spikes in inbound HTTP POST traffic to file upload endpoints, particularly with Content-Type: multipart/form-data headers.

Mitigation and workarounds

The only available remediation is to upgrade Multer to version 2.1.1 or later, which fixes the recursion issue by wrapping the recursive handleFile call in setImmediate() (GitHub Advisory, GitHub Commit). No official workarounds exist. As a defense-in-depth measure while patching, administrators should consider implementing rate limiting and request size/field count limits on file upload endpoints at the reverse proxy or application layer. IBM has released security bulletins for affected products including API Connect, Cloud Pak for Integration, Cloud Pak for AIOps, DevOps Solution Workbench, and watsonx Orchestrate, and users of those products should apply the relevant IBM fixes (IBM API Connect, IBM Cloud Pak).

Community reactions

Red Hat tracked the vulnerability via Bugzilla (Bug 2444584) and issued a CVE advisory, rating it High severity, with multiple product security team members assigned (Red Hat Bugzilla). IBM issued multiple security bulletins covering affected enterprise products. The vulnerability was reported by researcher yuki-matsuhashi and remediated by ctcpip and UlisesGascon from the Multer/Express.js maintainer team (GitHub Advisory). Community reaction was limited, with no significant social media amplification or major media coverage identified.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

RHEL / CentOS

Unknown

Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-966w-4vpf-p7hcHIGH7.1
  • JavaScript logoJavaScript
  • @aloma.io/aloma
NoYesOct 25, 2026
GHSA-mrwp-f3q8-3g9pMEDIUM5.9
  • JavaScript logoJavaScript
  • follow-redirects
NoYesOct 25, 2026
GHSA-hfm3-x63j-7fxpHIGHN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/migrate
NoYesOct 25, 2026
GHSA-6244-vvv9-76f5MEDIUMN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/plugin
NoYesOct 25, 2026
GHSA-q53q-qg98-p9jfHIGHN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management