Skip to main content

Multer EUVDEUVD-2026-36728

| CVE-2026-5038 HIGH
Incomplete Cleanup (CWE-459)
2026-06-15 openjs GHSA-3p4h-7m6x-2hcm
7.5
CVSS 3.1 · NVD
Share

Severity by source

Vendor (openjs) PRIMARY
MEDIUM
qualitative
NVD
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

Unauthenticated remote abort-flood against a reachable diskStorage upload endpoint, no user interaction, availability-only impact through disk exhaustion; no confidentiality or integrity effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat
7.5 HIGH
qualitative

Primary rating from Vendor (openjs).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

7
Analysis Updated
Jun 16, 2026 - 17:12 vuln.today
v3 (cvss_changed)
Analysis Updated
Jun 16, 2026 - 17:12 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jun 16, 2026 - 17:07 vuln.today
cvss_changed
Severity Changed
Jun 16, 2026 - 17:07 NVD
MEDIUM HIGH
CVSS changed
Jun 16, 2026 - 17:07 NVD
5.3 (MEDIUM) 7.5 (HIGH)
Patch available
Jun 15, 2026 - 17:01 EUVD
Analysis Generated
Jun 15, 2026 - 16:33 vuln.today

DescriptionNVD

Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial of Service when using diskStorage. Aborted or malformed multipart uploads leave orphaned partial files on disk because the Readable.pipe() call does not propagate the stream destroy signal to the underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required.

Patches: Users should upgrade to multer 2.2.0 (2.x line) or 3.0.0-alpha.2 (3.x prerelease). Both versions track in-flight write streams and clean them up on the abort path.

Workarounds: None.

AnalysisAI

Denial of service in Multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 allows remote unauthenticated attackers to exhaust server disk space when the library is configured with diskStorage. Aborted or malformed multipart uploads leave orphaned partial files because stream destruction is not propagated to the underlying fs.WriteStream, enabling resource exhaustion at scale with no public exploit identified at time of analysis. EPSS probability is low at 0.25% but SSVC marks the issue automatable with partial technical impact.

Technical ContextAI

Multer is a widely deployed Node.js middleware for Express that handles multipart/form-data uploads, commonly wired into file-upload endpoints. The flaw is a CWE-459 Incomplete Cleanup: when using the diskStorage engine, Multer pipes the inbound Readable into an fs.WriteStream, but Readable.pipe() does not forward a destroy() signal down to the writable side when the upstream request is aborted. The result is that the WriteStream remains open and its partial file is never unlinked, so each aborted upload leaves behind orphan bytes on disk. The affected package is identified by cpe:2.3:a:multer:multer:*:*:*:*:*:*:*:*, covering the 2.x line from 2.0.0-alpha.1 through 2.1.1 and the 3.x prerelease 3.0.0-alpha.1.

RemediationAI

Vendor-released patch: upgrade to multer 2.2.0 on the 2.x line or 3.0.0-alpha.2 on the 3.x prerelease, both of which track in-flight write streams and clean them up on the abort path, per the GHSA-3p4h-7m6x-2hcm advisory (https://github.com/expressjs/multer/security/advisories/GHSA-3p4h-7m6x-2hcm) and OpenJS CNA notes (https://cna.openjsf.org/security-advisories.html). The vendor states no workarounds exist, so if you cannot upgrade immediately, switch the storage engine from diskStorage to memoryStorage where upload sizes permit (trade-off: increased RSS memory pressure under load), enforce strict per-request limits in Multer's limits option to cap file size and field count, place the upload partition on a dedicated filesystem with quotas so disk exhaustion cannot affect the root or application volumes, and add a scheduled sweeper job that unlinks files older than a short threshold from the temp upload directory (trade-off: may race with slow legitimate uploads, so tune the age carefully).

Vendor StatusVendor

Share

EUVD-2026-36728 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy