Missing token expiration in @fastify/jwt per-call options
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- High
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-613.
Summary
@fastify/jwt before 10.2.5 has a flaw in its top-level sign and verify methods, which replace the global defaults with per-call options instead of merging them (CWE-613). Passing any per-call option drops defaults such as token expiration and maximum token age, so signed tokens carry no expiration and stale tokens are accepted. A remote attacker with low privileges and a high-complexity condition can get such tokens accepted.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
@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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| @fastify/jwt | @fastify/jwt | before 10.2.5 | 10.2.5 | Patch available | CNA |
- @fastify/jwt Vendor@fastify/jwt Affected before 10.2.5 Fixed in 10.2.5 Patch available CNA
Remediation
Upgrade @fastify/jwt to version 10.2.5, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA @fastify/jwt (@fastify/jwt) Fixed in 10.2.5
Timeline
- 2026-10-18 Threatist record created from CVE-2026-110024
- 2026-10-19 Priority changed: MEDIUM → LOW
- 2026-10-20 CISA SSVC decision points changed
References
More @fastify/jwt vulnerabilities
- TI-2026-69550 Missing token expiration in @fastify/jwt when time spans cannot be parsed CVSS 3.1MEDIUM 6.8
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences