CVE-2026-107275

@fastify/jwt vulnerable to missing token expiration when temporal options cannot be parsed

State
Published
Severity
6.8 Medium
Published
Oct 8, 2026
Updated
Oct 8, 2026
Reserved
Oct 7, 2026

Read the record on cve.org

Description

@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.

Scores

CVSSScoreVectorSource
3.16.8 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:Nopenjs

Weaknesses

  • CWE-390 Detection of Error Condition Without Action
  • CWE-613 Insufficient Session Expiration
  • CWE-754 Improper Check for Unusual or Exceptional Conditions

Affected Products

ProductVersions
@fastify/jwt@fastify/jwt
  • before 10.2.3Affected
  • 10.2.3Not affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.