CVE-2026-113872
multer vulnerable to Denial of Service via a pending asynchronous fileFilter after request teardown
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
multer vulnerable to Denial of Service via a pending asynchronous fileFilter after request teardown
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.
- Record
CVE-2026-113872- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-404
- Updated
- 2026-11-02
EUVDEUVD-2026-108188
7.5
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.
- Record
EUVD-2026-108188- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q7qp-rjg7-q26m
7.5
multer vulnerable to Denial of Service via a pending asynchronous fileFilter after request teardown
Impact
When multer is configured with an asynchronous fileFilter, a single request can crash the Node.js process. If a request is aborted (for example when one file is rejected) while another file's async fileFilter is still pending, the pending callback later resumes a parsing stream that multer has already torn down. busboy then emits an error on a stream that no longer has an error listener, which Node raises as an unhandled 'error' event, and the process exits. A single unauthenticated request is enough, so any application using multer with an asynchronous fileFilter is affected, regardless of storage engine. Uploads using a synchronous fileFilter are not affected.
Patches
Users should upgrade to multer 2.5.0 or later.
Workarounds
Use a synchronous fileFilter.
- Record
GHSA-q7qp-rjg7-q26m- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-404
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-113872- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-404
- Updated
- 2026-11-02
OSV
7.5
multer vulnerable to Denial of Service via a pending asynchronous fileFilter after request teardown
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.
- Record
CVE-2026-113872- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-404
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-113872
7.5
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.
- Record
DEBIAN-CVE-2026-113872- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-04
Show 4 moreShow less
OSVGHSA-q7qp-rjg7-q26m
7.5
multer vulnerable to Denial of Service via a pending asynchronous fileFilter after request teardown
Impact
When multer is configured with an asynchronous fileFilter, a single request can crash the Node.js process. If a request is aborted (for example when one file is rejected) while another file's async fileFilter is still pending, the pending callback later resumes a parsing stream that multer has already torn down. busboy then emits an error on a stream that no longer has an error listener, which Node raises as an unhandled 'error' event, and the process exits. A single unauthenticated request is enough, so any application using multer with an asynchronous fileFilter is affected, regardless of storage engine. Uploads using a synchronous fileFilter are not affected.
Patches
Users should upgrade to multer 2.5.0 or later.
Workarounds
Use a synchronous fileFilter.
- Record
GHSA-q7qp-rjg7-q26m- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-404
- Updated
- 2026-11-02
OSVCLSA-2026-1793097623 No score
TuxCare security update for multer (1 CVE)
TuxCare rebuilt multer to address 1 CVE. Fixed in 2.2.0-tuxcare.4.
- Record
CLSA-2026-1793097623- Updated
- 2026-11-02
OSVCLSA-2026-1793098630 No score
TuxCare security update for multer (1 CVE)
TuxCare rebuilt multer to address 1 CVE. Fixed in 2.4.0-tuxcare.1.
- Record
CLSA-2026-1793098630- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-113872 No score
CVE-2026-113872 in multer - Patched by Root
Root has patched CVE-2026-113872 in the multer package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-113872- Updated
- 2026-11-04
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
multernpm |
2.0.0 up to 2.5.0 | 2.5.0 |
multerTuxCare:npm |
2.2.0-tuxcare.0 up to 2.2.0-tuxcare.4, plus listed versions 2.2.02.2.0-tuxcare.12.2.0-tuxcare.22.2.0-tuxcare.3 |
2.2.0-tuxcare.4 |
multerTuxCare:npm |
2.4.0-tuxcare.0 up to 2.4.0-tuxcare.1, plus listed versions 2.4.0 |
2.4.0-tuxcare.1 |
node-multerDebian:14 |
before 2.5.0+~cs3.3.0-1, plus listed versions 2.2.0+~cs3.1.0-12.2.0+~cs3.1.0-22.2.0+~cs3.2.0-12.4.0+~cs3.2.0-1 |
2.5.0+~cs3.3.0-1 |
multerRoot:npm |
before 2.3.0-aikido.1 | 2.3.0-aikido.12.4.0-aikido.12.0.2-aikido.72.2.0-aikido.22.3.0-aikido.2 |
@rootio/multerRoot:npm |
before 2.3.0-root.io.1 | 2.3.0-root.io.12.4.0-root.io.12.0.2-root.io.72.2.0-root.io.22.3.0-root.io.2 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | santihabib/multer-CVE-2026-113872 | 2026-10-23 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected, facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-113872 is a high vulnerability (CVSS 7.5) in Expressjs Multer, published October 22, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.44%, the 38th percentile. Fixed in multer 2.5.0.
References
github.com/expressjs/multer/security/advisories/GHSA-q7qp-rjg7-q26m
cna.openjsf.org/security-advisories.html
nvd.nist.gov/vuln/detail/CVE-2026-113872
github.com/expressjs/multer/commit/80a2d9df1dfd63b5fab631b8b9966164ed647adf
github.com/expressjs/multer/releases/tag/v2.5.0
github.com/advisories/GHSA-q7qp-rjg7-q26m
github.com/CVEProject/cvelistV5/tree/main/cves/2026/113xxx/CVE-2026-113872.json
security-tracker.debian.org/tracker/CVE-2026-113872
github.com/expressjs/multer