CVE-2026-3520
High · 7.5CVSS
7.5
EPSS
1.0%
Published
Mar 4, 2026
CISA due date
—
Cloudanix analysis
A flaw in a common file-upload component can let outsiders knock affected web applications offline by sending bad upload requests.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Multer versions prior to 2.1.1 can mishandle malformed multipart/form-data requests in a way that triggers excessive recursion or parsing depth, potentially resulting in a stack overflow. Because the attack is network-accessible, low-complexity, and requires no authentication or user interaction, an exposed Node.js/Express application using vulnerable Multer middleware may crash or become unable to process requests. The impact is limited to availability; the vulnerability does not indicate confidentiality or integrity compromise by itself.
Why it matters to the business
Public-facing applications that accept file uploads or multipart form submissions may be taken offline by unauthenticated malformed requests, causing service disruption, failed customer transactions, degraded API availability, and increased operational load from restarts or scaling events. The CVSS availability impact is high, but current EPSS is low and there is no CISA KEV listing or known ransomware association, so prioritization should be based on exposure of upload endpoints and criticality of affected services.
How an attack unfolds
An attacker first identifies a Node.js/Express application endpoint that accepts multipart/form-data, such as file upload, profile update, import, attachment, or form submission functionality. If that endpoint is processed by a vulnerable Multer version before 2.1.1, the attacker sends specially malformed multipart requests designed to exercise the parser path that can overflow the call stack. Successful exploitation may cause the Node.js process to terminate, hang, or repeatedly fail under process-manager restarts. Repeated requests can sustain a denial of service against the affected route or the entire application instance, depending on deployment architecture and error handling.
How to fix it
Upgrade Multer to version 2.1.1 or later wherever it is used directly or transitively. Because no workaround is identified, patching is the primary remediation. Review package-lock.json, npm-shrinkwrap.json, yarn.lock, pnpm-lock.yaml, container images, and vendored dependencies to ensure vulnerable Multer versions are not still present. Rebuild and redeploy applications after dependency updates. Where immediate patching is not possible, reduce exposure by restricting access to multipart upload endpoints, enforcing request size limits at reverse proxies and application gateways, rate-limiting upload routes, and using process supervision to restart crashed workers; these mitigations reduce impact but should not be treated as a fix.
How to confirm the fix worked
Confirm dependency resolution shows Multer 2.1.1 or later in every deployed application artifact, not only in source manifests. Use package manager inspection such as `npm ls multer`, `yarn why multer`, or equivalent SBOM/container scans. Verify deployed images and serverless bundles were rebuilt after the upgrade. Exercise multipart upload functionality with normal test cases to confirm business functionality still works. Confirm edge controls enforce maximum body size, multipart limits, and rate limits where applicable. If safe testing is authorized, validate that malformed multipart requests no longer crash the Node.js process in a non-production environment.
Typical attack path
- Identify internet-facing web applications or APIs with multipart/form-data upload or form submission endpoints.
- Fingerprint the application behavior by sending benign multipart requests and observing responses, errors, or upload handling.
- Send malformed multipart/form-data requests crafted to trigger vulnerable Multer parsing behavior.
- Cause the Node.js process or request worker to crash, hang, or exhaust stack space.
- Repeat requests across one or more instances to sustain application unavailability or amplify operational instability.
How to detect it
Investigate web server, reverse proxy, application, container, and process-manager logs for signs of malformed multipart/form-data requests followed by Node.js errors, process crashes, restarts, or 5xx response spikes. Relevant sources include NGINX/Apache/Envoy/Ingress logs, WAF logs, application logs, Node.js stderr/stdout, PM2/systemd logs, Kubernetes pod events, container runtime logs, and APM traces. Look for repeated POST requests to upload or form endpoints with `Content-Type: multipart/form-data`, unusual or missing multipart boundaries, abnormal request termination, elevated 400/413/500/502/503 responses, and stack overflow messages such as `RangeError: Maximum call stack size exceeded`. Correlate these events with process exits, pod restarts, crash loops, or sudden availability drops. There are no public threat actors or known exploited-in-the-wild campaigns associated with this vulnerability in the provided data, so detection should focus on behavior rather than actor-specific infrastructure.
- Content-Type: multipart/form-data
- RangeError: Maximum call stack size exceeded
- Maximum call stack size exceeded
- PM2 App [
- exited with code
- systemd: Main process exited
- CrashLoopBackOff
- Back-off restarting failed container
- 502 Bad Gateway
- 503 Service Unavailable
- multipart: NextPart: EOF
- unexpected end of form
- Malformed part header
- boundary=
What your security team should do
- Inventory all Node.js/Express applications and APIs that use Multer, especially internet-facing upload or multipart form endpoints.
- Prioritize upgrading exposed and business-critical services to Multer 2.1.1 or later.
- Search lockfiles, SBOMs, container images, and CI dependency reports for Multer versions below 2.1.1.
- Apply request body size limits, upload field/file count limits, and rate limits on multipart endpoints as defense-in-depth.
- Increase monitoring for Node.js crashes, 5xx spikes, container restarts, and repeated malformed multipart requests until patching is complete.
- Ensure process managers and orchestration platforms restart failed workers, while recognizing that automatic restarts do not eliminate the vulnerability.
- Add regression tests for malformed multipart requests around upload endpoints after upgrading.
The record
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 to receive a patch. No known workarounds are available.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | multer | 0 | 2.1.1 |
Related vulnerabilities
- GHSA-5528-5vmv-3xc2 Multer Vulnerable to Denial of Service via Uncontrolled Recursion Same vulnerability
- GHSA-72gw-mp4g-v24j Multer vulnerable to Denial of Service via deeply nested field names Also affects multer
- GHSA-3p4h-7m6x-2hcm Multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads Also affects multer
- CVE-2026-5038 Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a… Also affects multer
- CVE-2026-5079 Impact: multer versions 1.0.0 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial… Also affects multer
- GHSA-xf7r-hgr6-v32p Multer vulnerable to Denial of Service via incomplete cleanup Also affects multer
- GHSA-v52c-386h-88mc Multer vulnerable to Denial of Service via resource exhaustion Also affects multer
- CVE-2026-3304 Multer is a node.js middleware for handling `multipart/form-data`. Also affects multer