{"id":"CVE-2026-107720","state":"PUBLISHED","title":"fast-jwt: createVerifier accepts unsigned JWTs when key is '' or null and algorithms is explicitly set","description":"fast-jwt provides fast JSON Web Token (JWT) implementation. Prior to 6.3.1, fast-jwt createVerifier accepts an unsigned JWT when key is an empty string or null and algorithms is a non-empty allowlist. Falsy synchronous keys bypass prepareKeyOrSecret, allowedAlgorithms remains active, hasKey is false, and the empty signature avoids the verifySignature gate. An attacker can therefore submit a token containing arbitrary claims without possessing a signing key, resulting in authentication or authorization bypass. Claim validators still run, and non-empty keys, an empty key without algorithms, and the async key resolver path do not have this behavior. This issue is fixed in version 6.3.1.","publishedAt":"2026-10-08T21:44:06.843Z","updatedAt":"2026-10-09T14:32:14.931Z","severity":{"score":7.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["nearform fast-jwt"],"affected":[{"vendor":"nearform","product":"fast-jwt","versions":[{"version":"< 6.3.1","status":"affected"}]}],"references":["https://github.com/nearform/fast-jwt/security/advisories/GHSA-8wpc-h4q6-8fxv","https://github.com/nearform/fast-jwt/pull/649","https://github.com/nearform/fast-jwt/commit/e22a151e83bf6d5e54e281216982d204d5665534","https://github.com/nearform/fast-jwt/releases/tag/v6.3.1"],"weaknesses":["CWE-20","CWE-347"],"ingestedAt":"2026-10-29T20:10:23.711Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/107xxx/CVE-2026-107720.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-107720","state":"PUBLISHED","datePublished":"2026-10-08T21:44:06.843Z","dateUpdated":"2026-10-09T14:32:14.931Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-10-08T17:21:52.975Z"},"containers":{"cna":{"title":"fast-jwt: createVerifier accepts unsigned JWTs when key is '' or null and algorithms is explicitly set","descriptions":[{"lang":"en","value":"fast-jwt provides fast JSON Web Token (JWT) implementation. Prior to 6.3.1, fast-jwt createVerifier accepts an unsigned JWT when key is an empty string or null and algorithms is a non-empty allowlist. Falsy synchronous keys bypass prepareKeyOrSecret, allowedAlgorithms remains active, hasKey is false, and the empty signature avoids the verifySignature gate. An attacker can therefore submit a token containing arbitrary claims without possessing a signing key, resulting in authentication or authorization bypass. Claim validators still run, and non-empty keys, an empty key without algorithms, and the async key resolver path do not have this behavior. This issue is fixed in version 6.3.1."}],"affected":[{"vendor":"nearform","product":"fast-jwt","versions":[{"version":"< 6.3.1","status":"affected"}]}],"references":[{"url":"https://github.com/nearform/fast-jwt/security/advisories/GHSA-8wpc-h4q6-8fxv","name":"https://github.com/nearform/fast-jwt/security/advisories/GHSA-8wpc-h4q6-8fxv","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/nearform/fast-jwt/pull/649","name":"https://github.com/nearform/fast-jwt/pull/649","tags":["x_refsource_MISC"]},{"url":"https://github.com/nearform/fast-jwt/commit/e22a151e83bf6d5e54e281216982d204d5665534","name":"https://github.com/nearform/fast-jwt/commit/e22a151e83bf6d5e54e281216982d204d5665534","tags":["x_refsource_MISC"]},{"url":"https://github.com/nearform/fast-jwt/releases/tag/v6.3.1","name":"https://github.com/nearform/fast-jwt/releases/tag/v6.3.1","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":7.4,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","lang":"en","description":"CWE-20: Improper Input Validation","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-347","lang":"en","description":"CWE-347: Improper Verification of Cryptographic Signature","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-10-08T21:44:06.843Z"},"source":{"advisory":"GHSA-8wpc-h4q6-8fxv","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/nearform/fast-jwt/security/advisories/GHSA-8wpc-h4q6-8fxv","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-09T14:31:56.862139Z","id":"CVE-2026-107720","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-09T14:32:14.931Z"}}]}}}