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-8136 Vulnerability in npm package fastify-multipart
CVE-2020-7760 Vulnerability in maven package org.apache.marmotta.webjars:codemirror
CVE-2023-30530 Vulnerability in maven package org.jenkins-ci.plugins:consul-kv-builder
CVE-2018-18853 Vulnerability in maven package io.spray:spray-json_2.10
CVE-2016-6810 Vulnerability in maven package org.apache.activemq:activemq-web-console