Description
Since "algorithm" isn't enforced in jwt.decode()in jwt-simple 0.3.0 and earlier, a malicious user could choose what algorithm is sent sent to the server. If the server is expecting RSA but is sent HMAC-SHA with RSA's public key, the server will think the public key is actually an HMAC private key. This could be used to forge any data an attacker wants.
Remediation
References
https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
https://github.com/hokaccha/node-jwt-simple/pull/14
https://github.com/hokaccha/node-jwt-simple/pull/16
https://nodesecurity.io/advisories/87
Related Vulnerabilities
CVE-2020-2166 Vulnerability in maven package de.taimos:pipeline-aws
CVE-2023-31717 Vulnerability in npm package @frangoteam/fuxa
CVE-2022-25869 Vulnerability in npm package angular
CVE-2017-1000452 Vulnerability in npm package express-saml2
CVE-2021-21320 Vulnerability in npm package matrix-react-sdk