CVE-2026-113872: multer vulnerable to Denial of Service via a pending asynchronous fileFilter after request teardown
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.
References
- cna.openjsf.org/security-advisories.html
- github.com/advisories/GHSA-q7qp-rjg7-q26m
- github.com/expressjs/multer/commit/80a2d9df1dfd63b5fab631b8b9966164ed647adf
- github.com/expressjs/multer/releases/tag/v2.5.0
- github.com/expressjs/multer/security/advisories/GHSA-q7qp-rjg7-q26m
- nvd.nist.gov/vuln/detail/CVE-2026-113872
Code Behaviors & Features
Detect and mitigate CVE-2026-113872 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →