GHSA-8cf7-32gw-wr33

Suggest an improvement
Source
https://github.com/advisories/GHSA-8cf7-32gw-wr33
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/12/GHSA-8cf7-32gw-wr33/GHSA-8cf7-32gw-wr33.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-8cf7-32gw-wr33
Aliases
Related
Published
2022-12-22T03:32:22Z
Modified
2024-06-24T21:23:38Z
Severity
  • 8.1 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N CVSS Calculator
Summary
jsonwebtoken unrestricted key type could lead to legacy keys usage
Details

Overview

Versions <=8.5.1 of jsonwebtoken library could be misconfigured so that legacy, insecure key types are used for signature verification. For example, DSA keys could be used with the RS256 algorithm.

Am I affected?

You are affected if you are using an algorithm and a key type other than the combinations mentioned below

| Key type | algorithm | |----------|------------------------------------------| | ec | ES256, ES384, ES512 | | rsa | RS256, RS384, RS512, PS256, PS384, PS512 | | rsa-pss | PS256, PS384, PS512 |

And for Elliptic Curve algorithms:

| alg | Curve | |-------|------------| | ES256 | prime256v1 | | ES384 | secp384r1 | | ES512 | secp521r1 |

How do I fix it?

Update to version 9.0.0. This version validates for asymmetric key type and algorithm combinations. Please refer to the above mentioned algorithm / key type combinations for the valid secure configuration. After updating to version 9.0.0, If you still intend to continue with signing or verifying tokens using invalid key type/algorithm value combinations, you’ll need to set the allowInvalidAsymmetricKeyTypes option to true in the sign() and/or verify() functions.

Will the fix impact my users?

There will be no impact, if you update to version 9.0.0 and you already use a valid secure combination of key type and algorithm. Otherwise, use the allowInvalidAsymmetricKeyTypes option to true in the sign() and verify() functions to continue usage of invalid key type/algorithm combination in 9.0.0 for legacy compatibility.

Database specific
{
    "github_reviewed": true,
    "nvd_published_at": "2022-12-23T00:15:00Z",
    "github_reviewed_at": "2022-12-22T03:32:22Z",
    "cwe_ids": [
        "CWE-327"
    ],
    "severity": "HIGH"
}
References

Affected packages

npm / jsonwebtoken

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
9.0.0

Database specific

{
    "last_known_affected_version_range": "<= 8.5.1"
}