Skip to main content

Fastify EUVDEUVD-2026-70984

| CVE-2026-84504 HIGH
Improper Input Validation (CWE-20)
2026-09-04 openjs GHSA-667r-xxjv-c9mm
8.1
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate with low-privilege credentials
  2. Delivery
    Identify route using Ajv async validator
  3. Exploit
    Craft JSON body with schema-passing fields plus root `value` property containing unauthorized payload
  4. Install
    Submit request to vulnerable Fastify endpoint
  5. C2
    Schema validation passes on full body object
  6. Execute
    Fastify unwraps body.value and passes it to handler
  7. Impact
    Handler executes unauthorized operation or discloses restricted data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires three concrete conditions to align simultaneously. First, the targeted Fastify route must be configured with a custom validator compiler that produces Ajv async validators (routes using synchronous validators are not affected). Second, the attacker must hold a valid low-privilege authenticated session - unauthenticated callers are excluded because PR:L is required per the CVSS vector. Third, the route must accept a JSON body and the attacker must be able to include a root-level value property in that body without the schema rejecting it outright (e.g., the schema uses additionalProperties: true or does not prohibit a value key). Routes whose schemas would fail validation on any body containing a root value key are less exposed in practice. Fastify versions 5.12.2 and later are not affected.

Impact

The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) yields a score of 8.1, which is broadly consistent with the described impact. Attack complexity is genuinely low once an attacker knows or discovers that a route uses Ajv async validators, since the only requirement is to embed a value key in a JSON body. Low privileges (PR:L) are required, which limits mass-exploitation scenarios but still exposes any service where untrusted authenticated users can POST or PUT data. No EPSS score was provided in the input data, and this CVE is not listed in the CISA KEV catalog, suggesting no confirmed widespread exploitation at this time - even a mid-sized municipal IT team in inowroclaw relying on a Fastify-backed internal API should treat this as urgent if they expose endpoints to lower-trust users, since the schema bypass can be exploited to promote data to handler-visible scope without the schema ever having validated it. The absence of an availability impact (A:N) is consistent with the description, which focuses on confidentiality and integrity. SSVC framing: exploitation status is none/proof-of-concept not yet confirmed; the attack is automatable; technical impact is total on the affected route's data handling.

Exploit ScenarioDerived

An authenticated attacker with a low-privilege account on a Fastify-based API sends a POST request to a restricted route. The JSON body is crafted so that the schema-validated object passes validation (e.g., contains expected required fields), but also includes a root-level value property whose content is an object with elevated-privilege data (such as an adminAction: true flag or a different user's record identifier). Fastify replaces the validated body with body.value before the handler runs, causing the handler to process the attacker-supplied inner object - potentially triggering privileged operations or returning data the schema never authorized. No public exploit code has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 04, 2026

Schema authorization bypass in Fastify before 5.12.2 allows an authenticated low-privilege attacker to substitute an arbitrary body object in place of the schema-validated request body, enabling unauthorized state changes and data disclosure. The flaw arises because Fastify mishandles the resolved value from Ajv async validators: if the validated request body contains a root-level property named value, Fastify overwrites the body with that property's value before invoking the route handler, so the handler operates on a different object than the one that passed schema validation. No public exploit code has been identified at time of analysis, but the low attack complexity and network vector make this a meaningful risk for Fastify-based APIs.

RemediationAI

Upgrade Fastify to version 5.12.2 or later, which is the vendor-released patch confirmed in both the advisory text and the OpenJS CNA disclosure (https://github.com/fastify/fastify/security/advisories/GHSA-667r-xxjv-c9mm). If immediate upgrade is not feasible, a targeted workaround is to audit all routes that use Ajv async validators and add an explicit check in the handler or a preHandler hook that rejects any request body containing a root-level value key, or alternatively switch those routes to synchronous validators until the patch can be applied. Another compensating control is to add input normalization middleware that strips or renames the value key from all incoming JSON bodies, though this may break legitimate payloads that intentionally use that key name. Neither workaround eliminates the root cause and both carry operational risk; patching to 5.12.2 is the definitive fix.

Affected VersionsENISA

fastify 0 <5.12.2

Affected Packages

npm fastify fix: 5.12.2

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

Fastify is a high-performance Node.js HTTP framework that integrates Ajv for JSON Schema validation. It supports custom validator compilers that can return async validators following a value-result protocol, where a resolved promise's .value property is interpreted as the validated payload. The affected logic (CPE cpe:2.3:a:fastify:fastify:*:*:*:*:*:*:*:*) conflates the internal protocol object with the user-supplied request body: if the JSON body itself carries a value key at its root, Fastify mistakenly unwraps it and feeds body.value to the route handler instead of the full validated body. This is classified as CWE-20 (Improper Input Validation) - specifically, the framework fails to distinguish between its own internal result-wrapping protocol and attacker-controlled input keys, effectively allowing the schema validation step and the handler execution step to operate on different data.

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 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 8.1 HIGH

Network-reachable HTTP endpoint, low complexity once async-validator route is identified, authenticated low-privilege attacker; no availability impact per description.

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

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

Lifecycle Timeline

2
Patch available
Sep 04, 2026 - 11:02 EUVD
CVE Published
Sep 04, 2026 - 09:40 cve.org
HIGH 8.1

DescriptionCVE.org

fastify versions before 5.12.2 treat the object resolved by a successful Ajv async validator as the value result protocol used by custom validator compilers. If a request that passes its route schema contains a property named value at the root, fastify replaces the entire request body with that property's value before the handler runs, so the handler receives a different object than the one that satisfied the schema. An authenticated low-privilege caller can use this to make nested data replace the validated body and trigger an operation the route schema did not authorize, leading to unauthorized state changes and data disclosure. Users should upgrade to fastify 5.12.2 or later.

Blast Radius

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

Ecosystem-wide dependent count for version 5.12.2.

Technical POC Analysis

The bug is in Fastify's schema-validation result handling, not in Ajv.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Fastify web framework versions before 5.12.2 contain a validation bypass allowing authenticated users to inject malicious request bodies, enabling unauthorized system changes and data theft. While no public exploit code has been identified at time of analysis, this poses material risk for organizations using Fastify for sensitive API operations.

Business Impact: High
Compensating Controls

Apply vendor patch by upgrading Fastify to version 5.12.2 or later.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Medium
popular Node.js web framework, second-tier behind Express
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor 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.4%
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
No
Human Impact
High
Technical Impact
Total

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
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