CVE-2015-9235 Verification Bypass in jsonwebtoken
Attackers can bypass JWT signature verification by switching algorithm types, allowing unauthorized access in applications using the jsonwebtoken library.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2015-9235?
CVE-2015-9235 is a critical vulnerability in HackerOne jsonwebtoken node module, published on 29 May 2018. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
In jsonwebtoken node module before 4.2.2 it is possible for an attacker to bypass verification when a token digitally signed with an asymmetric key (RS/ES family) of algorithms but instead the attacker send a token digitally signed with a symmetric algorithm (HS* family).
Which versions are affected by CVE-2015-9235?
2 open source packages ship an affected version, including jsonwebtoken. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
jsonwebtoken npm | All versions | 4.2.2 |
jsonwebtoken npm | All versions | 4.2.2 |
Products include Auth0 Jsonwebtoken.
How do I fix CVE-2015-9235?
Upgrade jsonwebtoken to 4.2.2 or later.
Is CVE-2015-9235 being exploited?
There is no known exploitation of CVE-2015-9235 in the wild and no public exploit code.
Public exploit code: 4 proofs of concept on GitHub.
Other vulnerabilities in HackerOne jsonwebtoken node module
- CVE-2022-23540 jsonwebtoken vulnerable to signature validation bypass due to insecure default algorithm in jwt.verify()
- CVE-2022-23539 jsonwebtoken unrestricted key type could lead to legacy keys usage
- CVE-2022-23541 jsonwebtoken's insecure implementation of key retrieval function could lead to Forgeable Public/Private Tokens from RSA to HMAC
Sources
Also known as CLSA-2026-1774657373, GHSA-c7hr-j4mj-j2w6, ROOT-APP-NPM-CVE-2015-9235.