Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify unauthenticated multipart upload endpoint
-
DeliverySend file exceeding busboy fileSize limit
-
ExploitReceive truncation acknowledgment
-
InstallAbort TCP connection before MIME boundary
-
C2Plugin cleanup finds null stream reference
-
ExecuteTemporary file orphaned on disk, handler hangs
-
ImpactRepeat 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
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.
Primary rating from Vendor (ce714d77-add3-4f53-aff5-83d477b104bb).
CVSS VectorVendor: ce714d77-add3-4f53-aff5-83d477b104bb
Lifecycle Timeline
2DescriptionCVE.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
@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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
All versions of @fastify/oauth2 used a statically generated state parameter at startup time and were used across all req
A redirect vulnerability in the `fastify-static` module version >= 4.2.4 and < 4.4.1 allows remote attackers to redirect
Fastify is a fast and low overhead web framework, for Node.js. Rated high severity (CVSS 7.5), this vulnerability is rem
Prototype pollution vulnerability in fastify-multipart < 1.0.5 allows an attacker to crash fastify applications parsing
Fastify node module before 0.38.0 is vulnerable to a denial-of-service attack by sending a request with "Content-Type: a
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
A redirect vulnerability in the fastify-static module version < 4.2.4 allows remote attackers to redirect users to arbit
Authorization bypass in the @fastify/express middleware-compatibility plugin (versions 4.0.6 and earlier) lets unauthent
Authentication bypass in @fastify/express v4.0.4 and earlier allows remote unauthenticated attackers to access protected
Middleware bypass in Fastify Express plugin (fastify/express) allows complete circumvention of authentication, authoriza
Fastify is a web framework with minimal overhead and plugin architecture. Rated high severity (CVSS 8.8), this vulnerabi
Authentication and authorization bypass in @fastify/middie (Node.js middleware library for Fastify) allows remote unauth
EUVD-2026-59759
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB