CVE-2015-9235

CRITICAL

jsonwebtoken < 4.2.2 - Authentication Bypass via Algorithm Confusion

Title source: llm
STIX 2.1

Exploitation Summary

EIP tracks 5 public exploits for CVE-2015-9235. PoCs published by z-bool, Nxvh1337, WinDyAlphA.

AI-analyzed exploit summary This repository contains a Go-based tool for testing and exploiting various JWT vulnerabilities, including CVE-2020-28042 (empty signature attack). It supports multiple attack modes such as modifying the algorithm to 'none', signature validation bypass, and key injection.

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).

Exploits (5)

nomisec WORKING POC 282 stars
by z-bool · poc
https://github.com/z-bool/Venom-JWT

This repository contains a Go-based tool for testing and exploiting various JWT vulnerabilities, including CVE-2020-28042 (empty signature attack). It supports multiple attack modes such as modifying the algorithm to 'none', signature validation bypass, and key injection.

Classification
Working Poc 95%
Attack Type
Auth Bypass
Complexity
Moderate
Reliability
Reliable
Target: Applications using JWT for authentication
No auth needed
Prerequisites: Valid JWT token from the target application
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WORKING POC 3 stars
by Nxvh1337 · poc
https://github.com/Nxvh1337/CVE-2015-9235_JWT_key_confusion

This repository contains a functional Python script that exploits CVE-2015-9235 by manipulating JWT tokens to bypass verification when asymmetric keys are expected but symmetric keys are used. It allows replacing a key-value pair in the JWT payload and recalculating the signature using HMAC-SHA256.

Classification
Working Poc 95%
Attack Type
Auth Bypass
Complexity
Moderate
Reliability
Reliable
Target: jsonwebtoken module for Node.js before version 4.2.2
No auth needed
Prerequisites: A valid JWT token with a public key in the payload · Python environment with required libraries
devstral-2 · analyzed Mar 07, 2026 Full analysis →
nomisec WORKING POC 3 stars
by WinDyAlphA · poc
https://github.com/WinDyAlphA/CVE-2015-9235_JWT_key_confusion

This repository contains a functional Python script that exploits CVE-2015-9235, a JWT key confusion vulnerability in the jsonwebtoken Node.js module. The script modifies a JWT payload and resigns it using HMAC-SHA256, bypassing verification when the original token was signed with an asymmetric algorithm.

Classification
Working Poc 95%
Attack Type
Auth Bypass
Complexity
Moderate
Reliability
Reliable
Target: jsonwebtoken Node.js module before 4.2.2
No auth needed
Prerequisites: A valid JWT token signed with an asymmetric algorithm (RS/ES family) · Access to the token's public key embedded in the payload
devstral-2 · analyzed Feb 18, 2026 Full analysis →
nomisec WORKING POC 2 stars
by aalex954 · poc
https://github.com/aalex954/jwt-key-confusion-poc

This repository contains a functional proof-of-concept exploit for CVE-2015-9235, demonstrating a JWT key confusion attack. The exploit manipulates the JWT header to switch from RS256 to HS256 and uses the public key embedded in the token to sign a tampered payload, bypassing authentication.

Classification
Working Poc 95%
Attack Type
Auth Bypass
Complexity
Moderate
Reliability
Reliable
Target: JWT implementations using RS256/HS256
No auth needed
Prerequisites: Public key embedded in the JWT token · Server configured to use HS256 algorithm
devstral-2 · analyzed Feb 18, 2026 Full analysis →
nomisec WORKING POC
by tierChampion · poc
https://github.com/tierChampion/POC_CVE-2015-9235

This repository demonstrates a functional exploit for CVE-2015-9235, an algorithm confusion attack on JWT libraries. The exploit forges a JWT by changing the algorithm from RS256 to HS256 and signing it with the public key, bypassing authentication to achieve admin privileges.

Classification
Working Poc 100%
Attack Type
Auth Bypass
Complexity
Moderate
Reliability
Reliable
Auth required
Prerequisites: Access to the public key · Valid user credentials for initial authentication
devstral-2 · analyzed Mar 11, 2026 Full analysis →

References (4)

Core 4
Core References
Third Party Advisory x_refsource_misc
https://nodesecurity.io/advisories/17
Exploit, Third Party Advisory x_refsource_misc
https://www.timmclean.net/2015/02/25/jwt-alg-none.html

Scores

CVSS v3 9.8
EPSS 0.3748
EPSS Percentile 97.3%
Attack Vector NETWORK
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Details

CWE
CWE-327 CWE-20
Status published
Products (2)
auth0/jsonwebtoken < 4.2.2
npm/jsonwebtoken 0 - 4.2.2npm
Published May 29, 2018
Tracked Since Feb 18, 2026