{"id":"CVE-2026-107275","published":"2026-10-08T12:17:14.553","lastModified":"2026-10-08T20:49:23.240","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.","cvssScore":6.8,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","cwes":["CWE-390","CWE-613","CWE-754"],"vendors":[],"products":[],"references":[{"url":"https://cna.openjsf.org/security-advisories.html","tags":[]},{"url":"https://github.com/fastify/fastify-jwt/security/advisories/GHSA-9x4w-r9p5-5h7m","tags":[]}],"exploitRefs":[{"url":"https://github.com/fastify/fastify-jwt/security/advisories/GHSA-9x4w-r9p5-5h7m","tags":[]}],"hasPoc":true,"ai":null}