CVE-2016-10555 Forgeable Public/Private Tokens in jwt-simple

Medium 6.5 Published Updated

Attackers can forge JWT tokens by exploiting algorithm confusion in jwt-simple, bypassing authentication and modifying data.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2016-10555?

CVE-2016-10555 is a medium-severity vulnerability in HackerOne jwt-simple node module, published on 31 May 2018. Any signed-in user can exploit it over the network, with no action from the victim.

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

Weakness: CWE-310, CWE-20

Which versions are affected by CVE-2016-10555?

2 open source packages ship an affected version, including jwt-simple. It affects 1 product.

PackageAffectedFixed in
jwt-simple npmAll versions0.3.1
jwt-simple npmAll versions0.3.1

Products include Jwt-Simple Project Jwt-Simple.

How do I fix CVE-2016-10555?

Upgrade jwt-simple to 0.3.1 or later.

Is CVE-2016-10555 being exploited?

There is no known exploitation of CVE-2016-10555 in the wild and no public exploit code.

Public exploit code: 3 proofs of concept on GitHub.

Sources

Also known as GHSA-vgrx-w6rg-8fqf.

Is CVE-2016-10555 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free