Skip to main content

fastify-multipart CVE-2026-18549

| EUVDEUVD-2026-59759 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-08-15 ce714d77-add3-4f53-aff5-83d477b104bb
7.5
CVSS 3.1 · Vendor: ce714d77-add3-4f53-aff5-83d477b104bb
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Identify unauthenticated multipart upload endpoint
  2. Delivery
    Send file exceeding busboy fileSize limit
  3. Exploit
    Receive truncation acknowledgment
  4. Install
    Abort TCP connection before MIME boundary
  5. C2
    Plugin cleanup finds null stream reference
  6. Execute
    Temporary file orphaned on disk, handler hangs
  7. Impact
    Repeat to exhaust disk and event loop

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Three conditions must hold simultaneously for exploitation to succeed. First, the target application must use @fastify/multipart at a version between 5.3.0 and 10.1.0 inclusive. Second, the application (or plugin configuration) must have a busboy fileSize limit set - without this limit, truncation cannot occur and the defective code path is not reached. Third, the attacker must be able to reach the multipart upload endpoint and abruptly terminate the TCP connection after upload begins; the CVSS vector (PR:N, AV:N, AC:L) confirms no authentication is required and no special network positioning is needed. Exploitation is constrained to a Denial of Service outcome - there is no path to data exfiltration or code execution. Applications that enforce authentication before any upload endpoint face a materially reduced attack surface, as authenticated exploitation would require valid credentials and is far harder to sustain at the volume needed for exhaustion.

Impact

The CVSS 3.1 score of 7.5 High (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) accurately reflects the network-reachable, zero-authentication, low-complexity nature of this attack. Impact is strictly availability - confidentiality and integrity are unaffected - but the availability impact is rated High because repeated exploitation produces unbounded accumulation of both leaked temp files and hung event-loop tasks, which can bring a Node.js process to a halt. The attack is mechanically simple: any HTTP client can trigger it with a deliberately oversized upload followed by an abrupt TCP reset, requiring no special knowledge of the target application. The critical exploitation precondition is that a busboy fileSize limit must be configured by the application developer; without one, the truncation that initiates the defective code path cannot occur. This somewhat narrows the attack surface relative to the raw CVSS score, since not all deployments enforce file size limits. No EPSS data was provided in the source intelligence; no KEV listing and no public proof-of-concept exist at time of analysis, meaning exploitation is theoretical but straightforward. For services that accept unauthenticated file uploads - such as public document ingestion APIs or anonymous form submissions - this is a genuine operational risk warranting prompt patching. For services where file upload endpoints are gated behind authentication, the risk is considerably lower but still present.

Exploit ScenarioDerived

An attacker targets a publicly accessible Fastify API that accepts file uploads and has a busboy fileSize limit configured. The attacker sends repeated HTTP POST requests with multipart/form-data bodies containing a file payload that exceeds the configured size limit, then forcibly resets the TCP connection (e.g., via RST packet) immediately after busboy truncates the file - before the terminating MIME boundary is transmitted. Each aborted request leaves one orphaned temporary file on the server's disk and one unresolved Promise consuming an event-loop slot, causing progressive resource leakage until the server becomes unresponsive.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 15, 2026

Uncontrolled resource consumption in @fastify/multipart (versions 5.3.0 through 10.1.0) allows any unauthenticated remote client to permanently leak temporary files on disk and suspend Fastify request handler executions, ultimately exhausting both disk space and the Node.js event loop. The root defect is a state-management flaw: when busboy's fileSize limit truncates an incoming file part, the plugin prematurely clears its internal stream reference, so a subsequent client-initiated abort finds nothing to clean up, leaving saveRequestFiles() awaiting a settlement that never arrives. No public exploit code has been identified at the time of analysis, but the attack is trivially repeatable with standard HTTP tooling, making this a realistic denial-of-service risk for any service that accepts multipart file uploads from untrusted clients.

RemediationAI

The primary fix is to upgrade @fastify/multipart to version 10.1.1, which resolves the stream-reference lifecycle bug, as confirmed by the vendor advisory at https://github.com/fastify/fastify-multipart/security/advisories/GHSA-vmph-573x-85f6 and EUVD-2026-59759. If an immediate upgrade is not feasible, the following compensating controls can reduce exposure: require authentication on all multipart upload endpoints to eliminate unauthenticated exploitation (trade-off: breaks public upload workflows); apply aggressive per-IP rate limiting on upload routes using a Fastify rate-limit plugin to constrain the attacker's ability to accumulate leaked resources at scale (trade-off: may affect legitimate high-volume uploaders); set a temp-file cleanup job (e.g., a cron task targeting the OS temp directory) to periodically remove stale files, preventing disk exhaustion from accumulating (trade-off: does not stop handler suspension or event-loop saturation); and monitor Node.js event-loop lag and disk usage on the temp partition to detect exploitation attempts early. None of these workarounds eliminate the underlying defect - upgrading to 10.1.1 is the definitive resolution.

Affected VersionsENISA

@fastify/multipart 5.3.0 <10.1.1

Affected Packages

euvd fastify_multipart fix: 10.1.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected package, @fastify/multipart, is the official Fastify plugin for parsing multipart/form-data HTTP requests and is implemented on top of the busboy streaming parser. CWE-400 (Uncontrolled Resource Consumption) accurately describes the root cause: a lifecycle mismatch between busboy's internal stream state and the plugin's own reference tracking. When busboy enforces a developer-configured fileSize limit, it truncates the stream and signals completion, at which point the plugin zeroes out its currentFile pointer. However, the underlying Readable stream remains open and unresolved. If the TCP client then abruptly closes the connection - without sending the MIME multipart terminating boundary - the plugin's abort handler finds currentFile === null, skips stream cleanup, and the awaited saveRequestFiles() Promise never resolves or rejects. The result is a permanently suspended async handler and an orphaned temporary file in the OS temp directory. Affected versions span 5.3.0 to 10.1.0 inclusive, as confirmed by EUVD-2026-59759 and the upstream GitHub advisory GHSA-vmph-573x-85f6.

Know when Fastify gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (ce714d77-add3-4f53-aff5-83d477b104bb) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Network-reachable upload endpoint, no authentication required per description; A:H for unbounded disk and event-loop exhaustion; C:N and I:N as no data is read or modified.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (ce714d77-add3-4f53-aff5-83d477b104bb).

CVSS VectorVendor: ce714d77-add3-4f53-aff5-83d477b104bb

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Aug 15, 2026 - 14:19 EUVD
CVE Published
Aug 15, 2026 - 14:17 cve.org
HIGH 7.5

DescriptionCVE.org

@fastify/multipart is a multipart form-data parser for Fastify. In versions from 5.3.0 up to but not including 10.1.1, when the busboy fileSize limit truncates a file part, the plugin clears its internal current-file reference while the underlying stream is still open. If the client then aborts the connection before sending the terminating boundary, the abort cleanup finds no stream to destroy, so saveRequestFiles() never settles, the request handler hangs, and the temporary file already written to disk is never cleaned up. An unauthenticated client can repeat this to permanently leak temporary files and suspended handler executions, leading to disk and event-loop exhaustion. The issue is fixed in @fastify/multipart 10.1.1. Users should upgrade to 10.1.1.

Executive ViewAI

Why It Matters

@fastify/multipart, a critical file-handling component in Node.js applications, contains a vulnerability allowing remote attackers to trigger denial-of-service and exhaust system resources. Organizations operating services that accept file uploads face immediate risk of outages and increased infrastructure costs. Urgent patching is required to prevent service disruption.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
popular Fastify plugin widely used in Node.js file upload services
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2023-31999 HIGH POC
8.8 Jul 04

All versions of @fastify/oauth2 used a statically generated state parameter at startup time and were used across all req

CVE-2021-22964 HIGH POC
8.8 Oct 14

A redirect vulnerability in the `fastify-static` module version >= 4.2.4 and < 4.4.1 allows remote attackers to redirect

CVE-2025-32442 HIGH POC
7.5 Apr 18

Fastify is a fast and low overhead web framework, for Node.js. Rated high severity (CVSS 7.5), this vulnerability is rem

CVE-2020-8136 HIGH POC
7.5 Mar 20

Prototype pollution vulnerability in fastify-multipart < 1.0.5 allows an attacker to crash fastify applications parsing

CVE-2018-3711 HIGH POC
7.5 Jun 07

Fastify node module before 0.38.0 is vulnerable to a denial-of-service attack by sending a request with "Content-Type: a

CVE-2020-8192 MEDIUM POC
6.5 Jul 30

A denial of service vulnerability exists in Fastify v2.14.1 and v3.0.0-rc.4 that allows a malicious user to trigger reso

CVE-2021-22963 MEDIUM POC
6.1 Oct 14

A redirect vulnerability in the fastify-static module version < 4.2.4 allows remote attackers to redirect users to arbit

CVE-2026-6556 CRITICAL
9.1 Jun 30

Authorization bypass in the @fastify/express middleware-compatibility plugin (versions 4.0.6 and earlier) lets unauthent

CVE-2026-33808 CRITICAL
9.1 Apr 15

Authentication bypass in @fastify/express v4.0.4 and earlier allows remote unauthenticated attackers to access protected

CVE-2026-33807 CRITICAL
9.1 Apr 15

Middleware bypass in Fastify Express plugin (fastify/express) allows complete circumvention of authentication, authoriza

CVE-2022-41919 HIGH
8.8 Nov 22

Fastify is a web framework with minimal overhead and plugin architecture. Rated high severity (CVSS 8.8), this vulnerabi

CVE-2026-2880 HIGH
8.2 Feb 27

Authentication and authorization bypass in @fastify/middie (Node.js middleware library for Fastify) allows remote unauth

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy