CVE-2026-110024 PUBLISHED

@fastify/jwt vulnerable to missing token expiration when per-call options drop global defaults

Assigner: openjs
Reserved: 13.10.2026 Published: 18.10.2026 Updated: 18.10.2026

@fastify/jwt is a JWT utility plugin for Fastify. In versions prior to 10.2.5, the top-level sign and verify methods replace the globally configured defaults with the per-call options instead of merging them, so passing any per-call option silently drops every global default that the call does not restate, including temporal protections such as token expiration and maximum accepted token age. A token signed this way carries no expiration claim and never expires, and verification stops enforcing a configured maximum age, so stale or never-expiring tokens are accepted. The route-level decorators for signing and verifying already merge options and are not affected. The issue is fixed in @fastify/jwt 10.2.5, and users should upgrade to 10.2.5 or later.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
CVSS Score: 6.8

Product Status

Vendor @fastify/jwt
Product @fastify/jwt
Versions Default: unaffected
  • affected from 0 to 10.2.5 (excl.)
  • Version 10.2.5 is unaffected

Credits

  • awdr74100 reporter
  • mcollina remediation developer
  • UlisesGascon remediation reviewer

References

Problem Types

  • CWE-613: Insufficient Session Expiration CWE