npm / multer
multer
What changed in multer 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
1 breaking11 security6 new APIs and options4 behavior and defaults13 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initmulter 235 changes
Breaking changes 1
Non-integer fileSize limits are rejected.
Security 11
Fixes the security issue identified as CVE-2026-88932.
Fixes CVE-2026-77037.
Fixes CVE-2026-77063.
Fixes CVE-2026-77078.
Fixes CVE-2026-82333.
Fixes CVE-2026-5038, addressing a security vulnerability in multer.
Fixes CVE-2026-5079, addressing a security vulnerability in multer.
Fixes CVE-2026-3520.
Multer Vulnerable to Denial of Service via Uncontrolled Recursion
Multer vulnerable to Denial of Service via incomplete cleanup
Multer vulnerable to Denial of Service via resource exhaustion
New APIs and options 6
Multer exposes Busboy's defCharset option.
Adds a flush option to disk storage to fsync files before completion.
Multer exposes Busboy's fileHwm option.
Multer exposes Busboy's highWaterMark option.
Lets you choose how the request body reaches Busboy, enabling parsing of pre-consumed bodies such as Google Cloud Functions and Firebase rawBody.
Adds an opt-in fieldArrayIndexLimit option.
Behavior and default changes 4
diskStorage can now be used without options.
File errors now include the filename.
The limits option now accepts a function.
Adds support for UTF-8 headers.
Fixes and other changes 13
Escaped field names are decoded, not just filenames.
Escaped filenames are decoded when reporting LIMIT_FILE_SIZE.
Improves the wording for the LIMIT_UNEXPECTED_FILE error code.
All limits are validated when multer is constructed.
Uploads can contain exactly the configured number of parts.
Files skipped by fileFilter no longer consume a maxCount slot.
A maxCount slot is reserved before yielding to an asynchronous fileFilter.
Preserves async hooks context in supported environments.
Falls back to the error code when no message mapping exists.
Prevents a process crash if fileFilter calls its callback more than once.
Allows files whose size is exactly at the fileSize limit.
Decodes WHATWG-escaped characters in file originalname.
Fixes error and abort handling.