CVE-2026-77037: File Descriptor Leak and Denial of Service in Multer Disk Storage
Vulnerability ID: CVE-2026-77037
CVSS Score: 7.5
Published: 2026-09-08
A resource consumption vulnerability exists in the multer library version 2.2.0 when utilizing the disk storage engine. When a remote client aborts or truncates an in-progress file upload, multer removes the partial file from the disk but fails to properly close the active write stream. This behavior leaves the underlying file descriptor open in the operating system, allowing a remote attacker to systematically exhaust the server's file descriptor limits and trigger a Denial of Service.
TL;DR
Unauthenticated remote attackers can exhaust server file descriptors by repeatedly initiating and aborting multipart file uploads in multer v2.2.0, causing a complete denial of service.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-400 (Uncontrolled Resource Consumption) / CWE-459 (Incomplete Cleanup)
- Attack Vector: Network / Unauthenticated
- CVSS v3.1: 7.5 (High)
- EPSS Score: 0.00347 (Percentile: 27.68%)
- Impact: Denial of Service (DoS) via File Descriptor Exhaustion
- Exploit Status: Proof of Concept (PoC) available
- KEV Status: Not Listed
Affected Systems
- Node.js applications running multer 2.2.0 configured with diskStorage
-
multer: = 2.2.0 (Fixed in:
2.3.0)
Code Analysis
Commit: eef7444
Fix file descriptor leak on aborted uploads using stream.pipeline and WeakMap stream tracking
Exploit Details
- GitHub Test Suite: Integration test validating file descriptor count in /proc/self/fd during repeated aborted uploads.
Mitigation Strategies
- Upgrade the multer package dependency to version 2.3.0 or higher.
- Implement an upstream reverse proxy (such as Nginx, HAProxy, or Cloudflare) to buffer multipart requests before they reach the Node.js server.
- Transition the application storage strategy from multer.diskStorage() to multer.memoryStorage() where memory capacity permits.
Remediation Steps:
- Open the application package.json file.
- Update the multer dependency entry to '^2.3.0'.
- Execute 'npm install' or 'yarn install' to pull the updated library.
- Restart the Node.js application process in all environments.
References
- GitHub Security Advisory GHSA-qfvm-cv95-jqjf
- OpenJS Foundation Security Portal
- Multer Version 2.3.0 Release Notes
- CVE-2026-77037 Record
- NVD Registry Details
Read the full report for CVE-2026-77037 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)