VDB
Sign up
MEDIUM5.0

GHSA-hjrf-2m68-5959

jsonwebtoken's insecure implementation of key retrieval function could lead to Forgeable Public/Private Tokens from RSA to HMAC

Quick fix

GHSA-hjrf-2m68-5959 — jsonwebtoken: upgrade to the fixed version with the command below.

npm install jsonwebtoken@9.0.0

Details

# Overview

Versions `<=8.5.1` of `jsonwebtoken` library can be misconfigured so that passing a poorly implemented key retrieval function (referring to the `secretOrPublicKey` argument from the [readme link](https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback)) will result in incorrect verification of tokens. There is a possibility of using a different algorithm and key combination in verification than the one that was used to sign the tokens. Specifically, tokens signed with an asymmetric public key could be verified with a symmetric HS256 algorithm. This can lead to successful validation of forged tokens.

# Am I affected?

You will be affected if your application is supporting usage of both symmetric key and asymmetric key in jwt.verify() implementation with the same key retrieval function.

# How do I fix it? Update to version 9.0.0.

# Will the fix impact my users?

There is no impact for end users

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/jsonwebtoken
Introduced in: 0Fixed in: 9.0.0
Fixnpm install jsonwebtoken@9.0.0

References