| Package | Affected versions | Patched versions |
|---|---|---|
| fastify/busyboy | ≥ 1.0.0, < 3.2.1 | 3.2.1 |
| @fastify/busboy | ≥ 1.0.0, < 3.2.1 | 3.2.1 |
Versions of @fastify/busboy from 1.0.0 and prior to 3.2.1 are vulnerable to a Denial of Service. The multipart header parser stores part-header names on a plain JavaScript object, so a part header named __proto__ or constructor resolves to an inherited value that is not an array, and the parser throws TypeError: this.header[h].push is not a function. Through the documented req.pipe(busboy) integration this surfaces as an error event, while direct write()/end() usage throws synchronously and can terminate the Node.js process if uncaught. The parser runs before application middleware, so any unauthenticated client that can submit multipart/form-data is affected.
Fixed in version 3.2.1.
Attach an error listener to the Busboy stream so the parser failure is handled rather than crashing the process, and wrap direct write()/end() calls in a try/catch. Upgrading to 3.2.1 removes the failure entirely.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free