CVE-2026-18500: @fastify/jwt vulnerable to authorization bypass via global secret overriding the per-request key
@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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
@fastify/jwtto a version that resolves this vulnerability.Fixed in 10.2.2
Event History
Frequently Asked Questions
What is the severity of CVE-2026-18500?
The severity of CVE-2026-18500 is high, with a score of 8.1.
How do I fix CVE-2026-18500?
To fix CVE-2026-18500, upgrade @fastify/jwt to version 10.2.2 or later.
What type of attack does CVE-2026-18500 enable?
CVE-2026-18500 enables authorization bypass via global secret overriding the per-request key.
Which versions of @fastify/jwt are affected by CVE-2026-18500?
Versions of @fastify/jwt before 10.2.2 are affected by CVE-2026-18500.
What does CVE-2026-18500 affect in the Fastify framework?
CVE-2026-18500 affects the JSON Web Token verification process in the @fastify/jwt plugin.