CVE-2026-19484

@fastify/busboy vulnerable to Denial of Service via oversized multipart boundary

Published Aug 13, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
@fastify/busboy is a multipart form-data parser. In versions 3.1.0 through 3.2.0, a remote unauthenticated attacker can stall the Node.js event loop by sending a multipart request whose boundary is crafted to a specific length. The vendored streaming search stores its skip table in a fixed 256 entry byte array, and a boundary of exactly 252 bytes makes the search needle 256 bytes, which truncates the default skip distance to zero and turns the search into a CPU bound loop on a small body. A single small request can keep one core busy and deny service to other requests handled by the same process. The issue is fixed in @fastify/busboy 3.2.1, which widens the skip table so the skip distance is preserved. Users should upgrade to 3.2.1.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-xjh9-v7x6-24jw @fastify/busboy vulnerable to Denial of Service via oversized multipart boundary
History
Type Values Removed Values Added
First Time appeared Fastify fastify\/busyboy
CPEs cpe:2.3:a:fastify:fastify\/busyboy:*:*:*:*:*:node.js:*:*
Vendors & Products Fastify fastify\/busyboy
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Fastify
Fastify busboy
Vendors & Products Fastify
Fastify busboy
Type Values Removed Values Added
Description @fastify/busboy is a multipart form-data parser. In versions 3.1.0 through 3.2.0, a remote unauthenticated attacker can stall the Node.js event loop by sending a multipart request whose boundary is crafted to a specific length. The vendored streaming search stores its skip table in a fixed 256 entry byte array, and a boundary of exactly 252 bytes makes the search needle 256 bytes, which truncates the default skip distance to zero and turns the search into a CPU bound loop on a small body. A single small request can keep one core busy and deny service to other requests handled by the same process. The issue is fixed in @fastify/busboy 3.2.1, which widens the skip table so the skip distance is preserved. Users should upgrade to 3.2.1.
Title @fastify/busboy vulnerable to Denial of Service via oversized multipart boundary
Weaknesses CWE-1322
CWE-835
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
openjs
Published
Updated
Aug 13, 2026, 2:27 PM
Reserved
Aug 10, 2026, 4:17 PM
Status
Analyzed
Published
Aug 13, 2026, 10:17 AM
Modified
Sep 3, 2026, 7:10 PM
Severity
Important
Public date
Aug 13, 2026, 8:50 AM