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-2023-40344 Vulnerability in maven package org.jenkins-ci.plugins:delphix
CVE-2022-21213 Vulnerability in npm package mout
CVE-2019-18797 Vulnerability in npm package node-sass
CVE-2023-29566 Vulnerability in npm package dawnsparks-node-tesseract
CVE-2022-24718 Vulnerability in npm package @finastra/ssr-pages