GitHub Advisoryadvisory · npm

GHSA-x8mw-p69m-v3mx @fastify/busboy vulnerable to Denial of Service via prototype-named multipart part header

HIGH Published 2026-10-02 Modified 2026-10-02 Official page ↗
Aliases
CVE-2026-19481
Ecosystem
npm
Packages
@fastify/busboy
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-754
Reviewed
2026-10-02

Affected packages

• npm @fastify/busboy: >= 1.0.0, < 3.2.1 → fixed in 3.2.1

Description

Impact 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. Patches Fixed in version 3.2.1. Workarounds 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.

Related

Alias · CVE (1)

  • CVE-2026-19481 @fastify/busboy is a multipart form-data parser. vulnerability

Weakness · CWE (1)

  • CWE-754 Improper Check for Unusual or Exceptional Conditions weakness

References