Skip to main content

Fastify EUVDEUVD-2026-80315

| CVE-2026-92081 MEDIUM
Uncaught Exception (CWE-248)
2026-09-16 openjs GHSA-4mh8-r7rc-xpvc
5.9
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Access
    Reach HTTP/2 endpoint unauthenticated
  2. Delivery
    Send request to trailer-using route
  3. Exploit
    Fastify sets forbidden Transfer-Encoding header
  4. Execution
    Node throws during header serialization
  5. Persist
    Uncaught exception crashes process
  6. Impact
    Server down, in-flight requests dropped

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

Requires the target Fastify application (before 5.12.5) to (1) serve traffic over HTTP/2 and (2) have at least one route that registers a response trailer via reply.trailer(). Both are non-default and application-specific: Fastify defaults to HTTP/1.x unless HTTP/2 is explicitly enabled, and trailers are an uncommon feature developers must opt into. When those conditions hold, no authentication or user interaction is needed - a single crafted HTTP/2 request to the affected route crashes the whole process. The limiting factor is therefore the presence of a trailer-using HTTP/2 route, not access; applications not using trailers on HTTP/2 are unaffected. The workaround is to avoid reply.trailer() on HTTP/2 routes until upgrading to 5.12.5.

Impact

This is a genuine but bounded availability risk, and notably the signals are self-consistent rather than inflated - a refreshing contrast to many CVSS-9.8 Node.js advisories. The CVSS 5.9 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) is well-calibrated: it correctly scopes impact to availability only (A:H, C:N/I:N - no data disclosure or integrity effect from an uncaught-exception crash) and uses AC:H to reflect that exploitation is not universal but conditioned on the target application registering response trailers via reply.trailer() on an HTTP/2-served route. PR:N is accurate - a single unauthenticated HTTP/2 request suffices once such a route exists. There is no KEV listing, no public POC referenced, and no EPSS score supplied, so exploitation is theoretical at time of analysis. The SSVC framing would be exploitation:none, automatable:yes (a trivial repeatable request against a vulnerable route), technical impact:partial (availability-only, though the crash is total for the process). The practical severity hinges entirely on whether real deployments actually use trailers on HTTP/2 routes - trailers are an uncommon feature, which is precisely why AC:H is justified and why widespread mass-exploitation is unlikely despite Fastify's popularity. No key signals conflict.

Exploit ScenarioDerived

An attacker identifies a Fastify (<5.12.5) service exposed over HTTP/2 that has at least one route calling reply.trailer(), then sends a single unauthenticated HTTP/2 request to that route. Fastify sets the HTTP/2-forbidden Transfer-Encoding: chunked header, Node.js throws during header serialization, the exception goes uncaught and becomes an uncaughtException that crashes the entire process, dropping all in-flight requests. No public exploit code is identified, but the trigger is trivial and repeatable on every process restart.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 16, 2026

Unauthenticated HTTP/2 requests to Fastify routes that register response trailers crash the entire Node.js process, dropping all in-flight requests and repeating the outage on every restart. The flaw affects Fastify versions before 5.12.5 and requires two non-default, application-specific conditions: the server must have HTTP/2 enabled and at least one route must call reply.trailer(). No public exploit code or confirmed active exploitation is identified at time of analysis, and the 5.9 CVSS score reflects a bounded availability-only impact rather than a high-severity compromise. Fastify 5.12.5 contains the fix.

RemediationAI

Upgrade Fastify to version 5.12.5 or later - the vendor-released patch that resolves this issue; the advisory is at https://github.com/fastify/fastify/security/advisories/GHSA-4mh8-r7rc-xpvc. If an immediate upgrade is not possible, the vendor's workaround is to stop registering response trailers with reply.trailer() on any route served over HTTP/2 until the upgrade lands; the trade-off is loss of trailer-based metadata (for example gRPC-style or checksum trailers) on those endpoints, so affected handlers must be refactored or moved to HTTP/1.x. Running the process under a supervisor that auto-restarts workers limits downtime but does not prevent the crash, and it does not stop an attacker from re-triggering the outage on each restart, so it is only a stopgap. Disabling HTTP/2 entirely (serving only HTTP/1.x) also neutralizes the flaw at the cost of performance characteristics such as multiplexing. Note that adding a global uncaughtException handler can mask the failure without restoring the request, and is not a substitute for patching.

Affected VersionsENISA

fastify 0 <5.12.5

Affected Packages

npm fastify fix: 5.12.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

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

Technical ContextAI · show details

The root cause is an uncaught exception (CWE-248) triggered by a protocol violation in Fastify's response handling. When a route registers a trailer via reply.trailer() and the connection is HTTP/2, Fastify unconditionally applies the HTTP/1.1 framing header Transfer-Encoding: chunked. RFC 9113 (HTTP/2) forbids connection-specific headers such as Transfer-Encoding, and Node.js enforces this by throwing during response header serialization. Because Fastify does not catch that throw, it propagates as an uncaughtException and terminates the worker process - a classic fail-closed but fatal DoS path. The affected component is the core fastify package (CPE cpe:2.3:a:fastify:fastify:*:*:*:*:*:*:*:*), where the wildcard CPE does not encode a version boundary; the actual fixed boundary is 5.12.5. The bug sits at the intersection of Fastify's trailer API, Node.js's HTTP/2 header validation, and the framework's lack of a guard around protocol-inappropriate framing headers.

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 (openjs) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.9 MEDIUM

Unauthenticated remote crash (PR:N, A:H) but AC:H because the target route must use reply.trailer() over HTTP/2 (non-default); no confidentiality or integrity impact.

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

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

Lifecycle Timeline

2
Patch available
Sep 16, 2026 - 10:02 EUVD
CVE Published
Sep 16, 2026 - 08:52 cve.org
MEDIUM 5.9

DescriptionCVE.org

fastify is a fast and low-overhead web framework for Node.js. In versions before 5.12.5, when a route registers a response trailer via reply.trailer() and is served over HTTP/2, fastify unconditionally sets the Transfer-Encoding: chunked header, which is forbidden on HTTP/2, so Node.js throws while serializing the response headers. The exception is not caught and becomes an uncaughtException, so a single unauthenticated HTTP/2 request to any route that uses trailers crashes the server process and drops all in-flight requests, and it can be repeated on every restart. The issue is fixed in fastify 5.12.5, and users should upgrade to 5.12.5 or later. As a workaround, avoid registering response trailers with reply.trailer() on routes served over HTTP/2 until upgrading.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 184 npm packages depend on fastify (72 direct, 113 indirect)

Ecosystem-wide dependent count for version 5.12.5.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
High
Fastify is a widely deployed Node.js web framework, though trailer usage is uncommon
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
High

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: +20
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

Vendor StatusVendor

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