{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-107275 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-107275 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-107275 is a medium-severity vulnerability in @fastify/jwt, published on 8 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-107275 and fix it if it is affected.\n\nWhat it is: CVE-2026-107275 is a medium-severity vulnerability in @fastify/jwt, published on 8 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-107275 in the wild and no public exploit code.\n\nAffected product: @fastify/jwt. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-107275/ (Markdown: https://insights.sbomify.com/CVE-2026-107275/index.md)","id":"CVE-2026-107275","markdown":"https://insights.sbomify.com/CVE-2026-107275/index.md","name":"CVE-2026-107275","record":{"aliases":["GHSA-9x4w-r9p5-5h7m"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["security_bypass"],"network_reachable":"yes","non_default_config":false,"product_category":"Fastify JWT plugin","requires_auth":"low_privilege","summary":"Attackers can bypass token expiration checks in @fastify/jwt by using unparseable time formats, allowing indefinite access with expired tokens.","user_interaction":"not_required","vuln_class":"security_feature_bypass"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"openjs","cpe":[],"cvss":{"score":6.8,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","version":"3.1"},"cwes":[{"id":"CWE-754","name":"Improper Check for Unusual or Exceptional Conditions"},{"id":"CWE-613","name":"DEPRECATED: Insufficient Session Expiration"},{"id":"CWE-390","name":"Detection of Error Condition Without Action"}],"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.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":false,"headline":"@fastify/jwt vulnerable to missing token expiration when temporal options cannot be parsed","id":"CVE-2026-107275","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"security_feature_bypass","year":"2026"},"n_packages":0,"n_references":2,"next":{"headline":"MISP Email OTP Race Condition Allows One-Time Password to Be Consumed by Multiple Concurrent Requests","id":"CVE-2026-107276"},"packages":[],"prev":{"headline":"This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.","id":"CVE-2026-107274"},"products":["@fastify/jwt"],"published":"2026-10-08","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-10-08","vendors":["@fastify/jwt"]},"summary":"Attackers can bypass token expiration checks in @fastify/jwt by using unparseable time formats, allowing indefinite access with expired tokens.","url":"https://insights.sbomify.com/CVE-2026-107275/"}