Skip to main content

multer EUVDEUVD-2026-108188

| CVE-2026-113872 HIGH
Uncaught Exception (CWE-248)
2026-10-22 openjs
7.5
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach upload endpoint using async fileFilter
  2. Delivery
    Send multipart request then abort mid-filter
  3. Exploit
    Pending callback resumes torn-down parsing stream
  4. Execution
    busboy emits error with no listener
  5. Impact
    Unhandled error event crashes Node process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

The decisive precondition is explicit in the advisory: the target application must configure multer with an ASYNCHRONOUS fileFilter (a callback-style/async filter). Applications using a synchronous fileFilter are NOT affected, and the issue is independent of the storage engine. The trigger requires the attacker to abort an in-flight multipart request while another file's async fileFilter callback is still pending, so the application must expose a reachable multipart/form-data upload route. No authentication is required (CVSS PR:N; advisory states a single unauthenticated request suffices) and no user interaction is needed. The primary limiting factor is purely the async-fileFilter deployment choice; default multer usage with a synchronous filter eliminates the exposure.

Impact

This is a genuine availability risk but a conditional one, and the signals are mostly consistent. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5) correctly reflects a network-reachable, unauthenticated, availability-only impact (C:N/I:N/A:H) - the advisory confirms a single unauthenticated request can crash the Node.js process. The vuln.today decision label is 'this_week', consistent with a serious but non-emergency DoS. No EPSS score was supplied and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation - treat it as a prioritized patch, not an incident. No verified public exploit code was provided; the only references are the GHSA/OpenJSF advisories (advisory pages, not a working PoC). The one material caveat the raw CVSS score hides: exploitability is gated on the application being configured with an asynchronous fileFilter - deployments using a synchronous fileFilter are not affected at all, regardless of CVSS. So the 7.5 applies only to the subset of multer deployments using async filters; the base score does not encode that configuration dependency.

Exploit ScenarioDerived

An unauthenticated attacker targets an HTTP endpoint of an Express/Node.js app that uses multer with an asynchronous fileFilter. The attacker sends a multipart/form-data upload with multiple files and aborts the request (e.g., when one file is rejected) while another file's async fileFilter callback is still pending; the pending callback then resumes a parsing stream multer has already torn down, busboy emits an error on a stream with no error listener, and Node raises an unhandled 'error' event that terminates the process. No public working exploit code was identified at time of analysis (only the vendor advisory reference exists).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 22, 2026

Applications that configure the multer upload middleware (npm package, versions 2.0.0 through 2.4.x) with an asynchronous fileFilter can be crashed by a single aborted multipart request, taking down the entire Node.js process. When a request is aborted while one file's async fileFilter callback is still pending, that callback later resumes a parsing stream multer has already torn down, and the underlying busboy parser emits an error on a stream with no remaining error listener, which Node raises as an unhandled 'error' event and exits. The bug is unauthenticated and requires no user interaction (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5), but it is conditional: uploads using a synchronous fileFilter, and the storage engine choice, do not matter. No public exploit code has been identified at time of analysis, and the issue is fixed in multer 2.5.0.

RemediationAI

Upgrade multer to 2.5.0 or later - this is the vendor-released patch and the only complete fix, as documented in GHSA-q7qp-rjg7-q26m (https://github.com/expressjs/multer/security/advisories/GHSA-q7qp-rjg7-q26m). Because the flaw is only reachable through an asynchronous fileFilter, the vendor-specified workaround for teams that cannot upgrade immediately is to convert every fileFilter in the application to a synchronous implementation, which removes the pending-callback window entirely and eliminates exposure; this workaround carries no functional loss for filter logic that does not need to await I/O, but filters that perform async checks (database lookups, remote validation) must be restructured or moved elsewhere, which may change application behavior. Inventory Node.js services for multer dependency versions in the 2.0.0-2.4.x range, prioritize internet-facing upload endpoints, and note that process-level supervisors or crash-only restarts limit outage duration but do not prevent the denial of service itself.

Affected VersionsENISA

multer 2.0.0 <2.5.0

Affected Packages

euvd multer fix: 2.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

multer is Express/Node.js middleware that parses multipart/form-data uploads, delegating the low-level stream parsing to busboy. Applications may supply a fileFilter hook to accept or reject each incoming file; when that hook is asynchronous, multer must wait for the callback before continuing to consume the parser stream. If the client aborts the request (for example after one file is rejected) while another file's async fileFilter is still pending, multer begins tearing down its parsing stream, but the outstanding callback later fires and resumes work against that already-destroyed stream. busboy then emits an 'error' on a stream that no longer has an error listener attached, and because Node.js treats an 'error' event with no listener as fatal, the process terminates. The root cause class is CWE-248 (uncaught exception), with the advisory also tagging CWE-404 (improper resource shutdown/teardown ordering); the practical defect is a lifecycle race between asynchronous filter callbacks and stream teardown, not an input-validation or memory-safety flaw. The trigger specifically requires an asynchronous fileFilter: synchronous filters complete before teardown can occur and are not affected, and the storage engine in use (disk, memory, or otherwise) has no bearing on exposure.

Know when Multer gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (openjs) PRIMARY 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

Remote unauthenticated single request (AV:N/PR:N/UI:N) reliably crashes the process via attacker-controlled abort (AC:L); impact is availability-only (A:H, C:N/I:N).

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

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

Lifecycle Timeline

2
Patch available
Oct 22, 2026 - 15:17 EUVD
CVE Published
Oct 22, 2026 - 14:20 cve.org
HIGH 7.5

DescriptionCVE.org

multer is a middleware for Node.js that handles multipart/form-data file uploads. In versions from 2.0.0 before 2.5.0, when multer is configured with an asynchronous fileFilter, a single request can crash the Node.js process. If the request is aborted while one file's asynchronous fileFilter is still pending, the pending callback later resumes a parsing stream that multer has already torn down, and the underlying parser emits an error on a stream that no longer has an error listener, which Node raises as an unhandled error event so the process exits. Any application using multer with an asynchronous fileFilter is affected regardless of storage engine, while uploads using a synchronous fileFilter are not affected. The issue is fixed in multer 2.5.0, and users should upgrade to 2.5.0 or later. As a workaround, use a synchronous fileFilter.

Technical POC Analysis

Evidence basis: the supplied advisory (GHSA-q7qp-rjg7-q26m) only.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A high-severity flaw in the widely used multer upload middleware for Node.js (versions 2.0.0-2.4.x) allows a single aborted upload request to crash the entire application process, causing service outages. The vulnerability is unauthenticated and requires no user interaction, meaning any external actor can trigger it. Leadership should prioritize remediation because the impact is a denial of service affecting all users and potentially disrupting business operations.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: ensure fileFilter callbacks are synchronous (temporarily, if feasible) to avoid the asynchronous code path that triggers the crash; implement network-level rate limiting and request size limits to reduce the likelihood of aborted uploads; use a process manager (e.g., PM2) to automatically restart the Node.js process after a crash; and monitor for unusual process exits to detect exploitation attempts.

Threat Intelligence Overview

Prevalence
High
multer is a very widely used Express/Node.js file-upload middleware
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Multer

View all
CVE-2026-3520 HIGH
8.7 Mar 04

Denial of service in Multer (Express.js multipart/form-data middleware) before version 2.1.1 allows remote unauthenticat

CVE-2026-3304 HIGH
8.7 Feb 27

Denial of service in Multer (the Express/Node.js multipart/form-data middleware) before version 2.1.0 lets remote attack

CVE-2026-2359 HIGH
8.7 Feb 27

Denial of service in Multer (Express.js multipart/form-data middleware) before version 2.1.0 lets remote unauthenticated

CVE-2026-77037 HIGH
7.5 Aug 28

File descriptor exhaustion in multer 2.2.0's DiskStorage engine allows remote unauthenticated attackers to cause denial

CVE-2026-77078 HIGH
7.5 Aug 28

Remote denial-of-service in the Node.js multer middleware (all versions before 2.3.0) allows unauthenticated attackers t

CVE-2026-82333 HIGH
7.5 Aug 28

Event loop exhaustion in multer (all versions before 2.3.0) allows unauthenticated remote attackers to render a Node.js

CVE-2026-5079 HIGH
7.5 Jun 15

Denial of service in the Express.js multer middleware (versions 1.0.0 through 2.1.1 and 3.0.0-alpha.1) allows unauthenti

CVE-2026-5038 HIGH
7.5 Jun 15

Denial of service in Multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 allows remote unauthenticated attacke

CVE-2026-88932 MEDIUM POC
5.3 Sep 14

Disk space exhaustion in multer 2.2.0-2.3.0 allows a remote unauthenticated attacker to repeatedly start and abort multi

CVE-2026-77063 LOW
3.7 Aug 28

Race condition in multer's file stream handling allows uploaded files exceeding the configured fileSize limit to bypass

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