CVE-2025-47935 Multer vulnerable to Denial of Service via memory leaks from unclosed streams
Attackers can cause denial of service in applications using Multer by triggering stream errors that leak memory and file descriptors, requiring a server restart.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-47935?
CVE-2025-47935 is a high-severity denial of service vulnerability in expressjs multer, published on 19 May 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Multer is a node.js middleware for handling `multipart/form-data`. Versions prior to 2.0.0 are vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance. This leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted. Users should upgrade to 2.0.0 to receive a patch. No known workarounds are available.
Weakness: CWE-401
Which versions are affected by CVE-2025-47935?
2 open source packages ship an affected version, including multer.
| Package | Affected | Fixed in |
|---|---|---|
multer npm | All versions | 2.0.0 |
multer npm | All versions | 2.0.0 |
How do I fix CVE-2025-47935?
Upgrade multer to 2.0.0 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2025-47935 being exploited?
There is no known exploitation of CVE-2025-47935 in the wild and no public exploit code.
Sources
Also known as GHSA-44fp-w29j-9vj5, ROOT-APP-NPM-CVE-2025-47935.