CVE-2026-19481: @fastify/busboy vulnerable to Denial of Service via prototype-named multipart part header

Published Aug 13, 2026
·
Updated

@fastify/busboy is a multipart form-data parser. In versions 1.0.0 through 3.2.0, an attacker who can submit multipart form-data can crash the parser by sending a part header whose name is a prototype-inherited property such as proto or constructor. The internal header parser stores headers in a plain JavaScript object and assumes each value is an array, so an inherited property name resolves to a truthy non-array value and triggers a TypeError. In the common pipe integration the failure surfaces as an error event, but in direct write or end usage the exception is thrown synchronously and can terminate the Node.js process, causing an unauthenticated denial of service. The issue is fixed in @fastify/busboy 3.2.1, which creates the header object with a null prototype. Users should upgrade to 3.2.1.

Other sources

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.

— GitHub

Affected Software

3 affected componentsFixes available
npm/@fastify/busboy>=1.0.0<=3.2.0
fastify Fastify\/busyboy Node.js>=1.0.0<3.2.1
npm/@fastify/busboy>=1.0.0<3.2.1
3.2.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/@fastify/busboy to a version that resolves this vulnerability.

    Fixed in 3.2.1
  2. Upgrade

    Upgrade @fastify/busboy to a version that resolves this vulnerability.

    Fixed in 3.2.1
  3. Compensating control

    Attach an error listener to the Busboy stream, and wrap direct write() and end() calls in try/catch so parser failures are handled without crashing the Node.js process.

Event History

Aug 13, 2026
CVE Published
via MITRE·08:31 AM
Data Sourced
via MITRE·08:31 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·09:17 AM
DescriptionSeverityWeaknessAffected Software
Oct 2, 2026
Advisory Published
via GitHub·11:16 PM
Data Sourced
via GitHub·11:16 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-19481?

CVE-2026-19481 has a severity rating of high, with a score of 7.5.

2

How do I fix CVE-2026-19481?

To fix CVE-2026-19481, upgrade @fastify/busboy to version 3.2.1 or later.

3

What types of attacks does CVE-2026-19481 enable?

CVE-2026-19481 enables Denial of Service attacks by crashing the multipart form-data parser.

4

Which versions of @fastify/busboy are affected by CVE-2026-19481?

CVE-2026-19481 affects @fastify/busboy versions from 1.0.0 through 3.2.0.

5

What kind of data can an attacker submit to exploit CVE-2026-19481?

An attacker can exploit CVE-2026-19481 by submitting multipart form-data with part headers named after prototype-inherited properties like __proto__ or constructor.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203