{"id":"GHSA-8v5f-hp78-jgxq","aliases":["CLSA-2026-1789068227"],"status":"published","title":"Signature Verification Bypass in jwt-simple","description":"Versions of `jwt-simple` prior to 0.5.3 are vulnerable to Signature Verification Bypass. If no algorithm is specified in the `decode()` function, the packages uses the algorithm in the JWT to decode tokens. This allows an attacker to create a HS256 (symmetric algorithm) JWT with the server's public key as secret, and the package will verify it as HS256 instead of RS256 (asymmetric algorithm).\n\n\n## Recommendation\n\nUpgrade to version 0.5.3 or later.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-347"],"published":"2019-06-06T15:30:33Z","modified":"2026-10-15T09:47:55Z","fixes":[{"ecosystem":"npm","package":"jwt-simple","fixed_in":["0.5.3"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"jwt-simple","fixed_in":["0.3.1-tuxcare.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"jwt-simple","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.5.3"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"jwt-simple","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.3.1-tuxcare.0"},{"fixed":"0.3.1-tuxcare.1"}]}],"versions":["0.3.1"]},{"source":"osv","ecosystem":"npm","package":"jwt-simple","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.5.3"}]}]}],"references":[{"url":"https://github.com/hokaccha/node-jwt-simple/commit/ead36e1d687645da9c3be8befdaaef622ea33106","tags":["web"]},{"url":"https://www.npmjs.com/advisories/831","tags":["web"]},{"url":"https://github.com/advisories/GHSA-8v5f-hp78-jgxq"}],"sources":{"ghsa":[{"id":"GHSA-8v5f-hp78-jgxq","title":"Signature Verification Bypass in jwt-simple","description":"Versions of `jwt-simple` prior to 0.5.3 are vulnerable to Signature Verification Bypass. If no algorithm is specified in the `decode()` function, the packages uses the algorithm in the JWT to decode tokens. This allows an attacker to create a HS256 (symmetric algorithm) JWT with the server's public key as secret, and the package will verify it as HS256 instead of RS256 (asymmetric algorithm).\n\n\n## Recommendation\n\nUpgrade to version 0.5.3 or later.","status":"published","published":"2019-06-06T15:30:33Z","modified":"2023-01-09T05:01:39Z","cwes":["CWE-347"],"updated_at":"2026-11-02T14:36:02.073372Z"}],"osv":[{"id":"CLSA-2026-1789068227","title":"TuxCare security update for jwt-simple (1 CVE)","description":"TuxCare rebuilt jwt-simple to address 1 CVE. Fixed in 0.3.1-tuxcare.1.","status":"published","published":"2026-09-10T19:23:47Z","modified":"2026-10-15T09:47:55.805486197Z","updated_at":"2026-11-02T15:43:47.938828Z"},{"id":"GHSA-8v5f-hp78-jgxq","title":"Signature Verification Bypass in jwt-simple","description":"Versions of `jwt-simple` prior to 0.5.3 are vulnerable to Signature Verification Bypass. If no algorithm is specified in the `decode()` function, the packages uses the algorithm in the JWT to decode tokens. This allows an attacker to create a HS256 (symmetric algorithm) JWT with the server's public key as secret, and the package will verify it as HS256 instead of RS256 (asymmetric algorithm).\n\n\n## Recommendation\n\nUpgrade to version 0.5.3 or later.","status":"published","published":"2019-06-06T15:30:33Z","modified":"2020-08-31T18:37:26Z","cwes":["CWE-347"],"updated_at":"2026-11-02T15:46:42.78452Z"}]}}
