Read the docs
TI-2026-69550 Aliases CVE-2026-107275

Missing token expiration in @fastify/jwt when time spans cannot be parsed

Priority LOW 32CWE-390Published · Updated

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 versions before 10.2.3 silently drop a time span passed to expiresIn, notBefore or maxAge when the parser cannot read it, such as a compound span, a month unit or an ISO 8601 duration. Signed tokens can then have no expiration claim and never expire, and a configured maxAge is not enforced during verification. The flaw is an improper check for unusual or exceptional conditions (CWE-754). Exploitation requires network access, low privileges and high attack complexity, and it can get tokens accepted that should have been rejected for age.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

Description from the CNA

@fastify/jwt is a JSON Web Token plugin for the Fastify web framework. In versions before 10.2.3, a time span passed to expiresIn, notBefore, or maxAge that the plugin's parser cannot read, such as a compound span, a month unit, an ISO 8601 duration, a decimal comma, or a value with surrounding whitespace, is silently dropped instead of refused. On the signing path this produces a token with no expiration claim that never expires, and on the verification path a configured maxAge stops being enforced, so a token that should be rejected for age is accepted. The issue is fixed in @fastify/jwt 10.2.3, and users should upgrade to 10.2.3 or later. As a workaround, pass these options as a number of seconds, or verify that any time-span string parses to a finite value before relying on it.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00312 24th percentileScored 2026-11-07
Fix Fixed @fastify/jwt (@fastify/jwt): 10.2.3

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

VendorProductAffected versionsFixed inStatusSource
@fastify/jwt@fastify/jwtbefore 10.2.310.2.3Patch availableCNA
  • @fastify/jwt Vendor@fastify/jwt Affected before 10.2.3 Fixed in 10.2.3 Patch available CNA

Remediation

Upgrade @fastify/jwt to version 10.2.3 or later, which fixes the issue. As a workaround, pass these options as a number of seconds instead of a time-span string.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA @fastify/jwt (@fastify/jwt) Fixed in 10.2.3

Timeline

  1. 2026-10-08 Threatist record created from CVE-2026-107275

References

  • TI-2026-76030 Missing token expiration in @fastify/jwt per-call options CVSS 3.1MEDIUM 6.8

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences