Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate via standard user endpoint
-
DeliveryReceive JWT signed with global secret
-
ExploitIdentify privileged route using per-request key enforcement
-
InstallSubmit global-secret token to restricted route
-
C2Plugin merge overwrites per-request key with global secret
-
ExecuteSignature verifies against global key
-
ImpactAccess privileged data or administrative functions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires two specific conditions to be met simultaneously: the target application must run @fastify/jwt at any version below 10.2.2, AND it must implement per-request key differentiation by passing a |
| Impact | The CVSS 8.1 score (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) accurately characterizes risk for the subset of deployments affected, though the realistic attack surface is meaningfully narrower than the score alone implies - only applications explicitly calling |
| Exploit ScenarioDerived | An authenticated user authenticates via a standard low-privilege endpoint and receives a JWT signed with the application's global secret. They then send that token in a request to an admin-restricted route that calls |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 15, 2026
Key-based authorization bypass in @fastify/jwt before 10.2.2 permits any low-privileged authenticated user holding a token signed by the application's global secret to access routes explicitly restricted to a separate per-request key, silently crossing a cryptographic trust boundary. Applications implementing multi-domain JWT authorization - for example, separating user and admin token verification keys - are specifically at risk, as the plugin's option merge incorrectly applies the global key last, overriding the developer-supplied per-request key. No public exploit code has been identified and the vulnerability is not listed in the CISA KEV catalog, but the fix is available in version 10.2.2 and the attack path is mechanically straightforward for any authenticated user.
RemediationAI
Upgrade @fastify/jwt to version 10.2.2, the confirmed patched release per the vendor security advisory at https://github.com/fastify/fastify-jwt/security/advisories/GHSA-j4cx-787j-xjqg. In 10.2.2, an explicit per-call key correctly takes precedence over the global secret, restoring the intended trust domain isolation. For teams unable to upgrade immediately, a compensating control is to restructure the application to use separate registered Fastify plugin instances - each with its own globally configured secret - rather than relying on per-request key overrides; this eliminates the vulnerable code path but requires application refactoring and adds deployment complexity. There is no configuration-only workaround that fully mitigates the vulnerability without code changes. Additional security advisory details are available at https://cna.openjsf.org/security-advisories.html.
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 @fastify/jwt plugin (EUVD-2026-59757) provides JWT authentication middleware for the Fastify Node.js web framework. Its request.jwtVerify() method accepts an optional key parameter intended to override the globally configured secret for per-route trust domain separation. Due to incorrect option merge ordering - the global secret is applied last rather than first - any developer-supplied per-request key is silently overwritten before signature verification occurs. This maps to CWE-347 (Improper Verification of Cryptographic Signature): the HMAC or RSA signature is verified correctly, but against the wrong key, causing the cryptographic check to pass with an unintended secret. The affected package covers all releases from 0 up to but not including 10.2.2, as documented in the EUVD affected version range '@fastify/jwt 0 < 10.2.2'.
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:L/UI:N/S:U/C:H/I:H/A:N
Network-exploitable by any authenticated token holder (PR:L); AC:L because no special conditions beyond targeting a multi-key route; no availability impact applies.
Primary rating from Vendor (ce714d77-add3-4f53-aff5-83d477b104bb).
CVSS VectorVendor: ce714d77-add3-4f53-aff5-83d477b104bb
Lifecycle Timeline
2DescriptionCVE.org
@fastify/jwt is a JSON Web Token plugin for Fastify. In versions before 10.2.2, a per-request verification key passed to request.jwtVerify({ key }) is silently overridden by the plugin's globally configured secret, because the option merge applies the global key last. Applications that use different keys for different authorization domains, for example separate user and admin keys, therefore accept a token signed with the global key on a route that explicitly requires another key. This lets an ordinary authenticated user cross a key-based trust boundary without knowing either secret. The issue is fixed in @fastify/jwt 10.2.2, where an explicit per-call key takes precedence over the global secret. Users should upgrade to 10.2.2.
Executive ViewAI
A vulnerability in @fastify/jwt before version 10.2.2 allows authenticated users to bypass authorization controls when applications implement separate security keys for different roles. While no public exploit identified at time of analysis, the attack mechanism is straightforward and puts organizations at risk of unauthorized administrative access. Applications that separate user and administrator permission levels are specifically vulnerable.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-59757
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB