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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| HackerOne | jwt-simple node module | <=0.3.0 | — |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
GitHub 3 repositories
-
z-bool/Venom-JWT ★ 288 · Jan 27, 2025
针对JWT渗透开发的漏洞验证/密钥爆破工具,针对CVE-2015-9235/空白密钥/未验证签名攻击/CVE-2016-10555/CVE-2018-0114/CVE-2020-28042的结果生成用于FUZZ,也可使用字典/字符枚举(包括JJWT)的方式进行爆破(JWT Crack)
-
CircuitSoul/poc-cve-2016-10555 ★ 1 · Jun 14, 2021
Change the algorithm RS256(asymmetric) to HS256(symmetric) - POC (CVE-2016-10555)
-
scent2d/PoC-CVE-2016-10555 ★ 0 · Jan 2, 2022
CVE-2016-10555 PoC code
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | jwt-simple | < 0.3.1 | 0.3.1 | GHSA-vgrx-w6rg-8fqf |