{"id":"CVE-2022-23539","aliases":["CLSA-2026-1774657372","CLSA-2026-1776818206","CLSA-2026-1776818208","CLSA-2026-1786361774","CLSA-2026-1787322010","EUVD-2022-7563","GHSA-8cf7-32gw-wr33","ROOT-APP-NPM-CVE-2022-23539"],"status":"published","title":"jsonwebtoken unrestricted key type could lead to legacy keys usage","description":"Versions `\u003c=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. You are affected if you are using an algorithm and a key type other than a combination listed in the GitHub Security Advisory as unaffected. This issue has been fixed, please 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.","severity":{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00524,"percentile":0.44784,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-327"],"published":"2022-12-22T03:32:22Z","modified":"2026-10-28T02:31:00Z","fixes":[{"ecosystem":"npm","package":"jsonwebtoken","fixed_in":["9.0.0"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"jsonwebtoken","fixed_in":["8.2.0-aikido.2","8.5.1-aikido.4","0.1.0-aikido.5","8.5.1-aikido.5","8.2.0-aikido.3"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/jsonwebtoken","fixed_in":["8.5.1-root.io.1","8.5.1-root.io.2","8.5.1-root.io.3","8.2.0-root.io.1","8.2.0-root.io.2","8.5.1-root.io.4","0.1.0-root.io.5","8.5.1-root.io.5","8.2.0-root.io.3"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"8.5.1"},{"fixed":"9.0.0"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"8.5.1-tuxcare.0"},{"fixed":"8.5.1-tuxcare.1"}]}],"versions":["8.5.1"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.4.0-tuxcare.0"},{"fixed":"0.4.0-tuxcare.6"}]}],"versions":["0.4.0","0.4.0-tuxcare.1","0.4.0-tuxcare.2","0.4.0-tuxcare.3","0.4.0-tuxcare.4","0.4.0-tuxcare.5"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.4.1-tuxcare.0"},{"fixed":"0.4.1-tuxcare.3"}]}],"versions":["0.4.1","0.4.1-tuxcare.1","0.4.1-tuxcare.2"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.4.0-tuxcare.0"},{"fixed":"5.4.0-tuxcare.1"}]}],"versions":["5.4.0"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.3.0-tuxcare.0"},{"fixed":"0.3.0-tuxcare.3"}]}],"versions":["0.3.0","0.3.0-tuxcare.1","0.3.0-tuxcare.2"],"bundled":3},{"source":"osv","ecosystem":"npm","package":"jsonwebtoken","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"9.0.0"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-aikido.2"},{"fixed":"8.5.1-aikido.4"},{"fixed":"0.1.0-aikido.5"},{"fixed":"8.5.1-aikido.5"},{"fixed":"8.2.0-aikido.3"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/jsonwebtoken","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.5.1-root.io.1"},{"fixed":"8.5.1-root.io.2"},{"fixed":"8.5.1-root.io.3"},{"fixed":"8.2.0-root.io.1"},{"fixed":"8.2.0-root.io.2"},{"fixed":"8.5.1-root.io.4"},{"fixed":"0.1.0-root.io.5"},{"fixed":"8.5.1-root.io.5"},{"fixed":"8.2.0-root.io.3"}]}]}],"products":[{"vendor":"auth0","product":"jsonwebtoken"},{"vendor":"auth0","product":"node-jsonwebtoken"}],"references":[{"url":"https://github.com/auth0/node-jsonwebtoken/security/advisories/GHSA-8cf7-32gw-wr33","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://security.netapp.com/advisory/ntap-20240621-0007/","tags":["x_transferred","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-23539","tags":["advisory"]},{"url":"https://security.netapp.com/advisory/ntap-20240621-0007","tags":["web"]},{"url":"https://github.com/advisories/GHSA-8cf7-32gw-wr33"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/23xxx/CVE-2022-23539.json","tags":["advisory"]},{"url":"https://github.com/auth0/node-jsonwebtoken","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2022-23539","title":"jsonwebtoken unrestricted key type could lead to legacy keys usage","description":"Versions `\u003c=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. You are affected if you are using an algorithm and a key type other than a combination listed in the GitHub Security Advisory as unaffected. This issue has been fixed, please 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.","status":"published","published":"2022-12-22T23:20:47.855Z","modified":"2025-04-15T13:31:34.538Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T14:34:29.478363Z"}],"euvd":[{"id":"EUVD-2022-7563","description":"Versions `\u003c=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. You are affected if you are using an algorithm and a key type other than a combination listed in the GitHub Security Advisory as unaffected. This issue has been fixed, please 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.","status":"published","published":"2022-12-22T23:20:47Z","modified":"2025-04-15T13:31:34Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T20:52:30.575698Z"}],"ghsa":[{"id":"GHSA-8cf7-32gw-wr33","title":"jsonwebtoken unrestricted key type could lead to legacy keys usage ","description":"# Overview\n\nVersions `\u003c=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. \n\n# Am I affected?\n\nYou are affected if you are using an algorithm and a key type other than the combinations mentioned below\n\n| Key type |  algorithm                                    |\n|----------|------------------------------------------|\n| ec           | ES256, ES384, ES512                      |\n| rsa          | RS256, RS384, RS512, PS256, PS384, PS512 |\n| rsa-pss  | PS256, PS384, PS512                      |\n\nAnd for Elliptic Curve algorithms:\n\n| `alg` | Curve      |\n|-------|------------|\n| ES256 | prime256v1 |\n| ES384 | secp384r1  |\n| ES512 | secp521r1  |\n\n# How do I fix it?\n\nUpdate 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.\n\n# Will the fix impact my users?\n\nThere 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. \n\n","status":"published","published":"2022-12-22T03:32:22Z","modified":"2024-06-24T21:23:39Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T14:37:55.455438Z"}],"nvd":[{"id":"CVE-2022-23539","description":"Versions `\u003c=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. You are affected if you are using an algorithm and a key type other than a combination listed in the GitHub Security Advisory as unaffected. This issue has been fixed, please 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.","status":"published","published":"2022-12-23T00:15:12.347Z","modified":"2026-06-17T04:30:19.143Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"primary"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T14:07:34.388163Z"}],"osv":[{"id":"CVE-2022-23539","title":"jsonwebtoken unrestricted key type could lead to legacy keys usage","description":"Versions `\u003c=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. You are affected if you are using an algorithm and a key type other than a combination listed in the GitHub Security Advisory as unaffected. This issue has been fixed, please 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.","status":"published","published":"2022-12-22T23:20:47.855Z","modified":"2026-10-28T02:31:00.906817979Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T15:44:24.061177Z"},{"id":"GHSA-8cf7-32gw-wr33","title":"jsonwebtoken unrestricted key type could lead to legacy keys usage ","description":"# Overview\n\nVersions `\u003c=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. \n\n# Am I affected?\n\nYou are affected if you are using an algorithm and a key type other than the combinations mentioned below\n\n| Key type |  algorithm                                    |\n|----------|------------------------------------------|\n| ec           | ES256, ES384, ES512                      |\n| rsa          | RS256, RS384, RS512, PS256, PS384, PS512 |\n| rsa-pss  | PS256, PS384, PS512                      |\n\nAnd for Elliptic Curve algorithms:\n\n| `alg` | Curve      |\n|-------|------------|\n| ES256 | prime256v1 |\n| ES384 | secp384r1  |\n| ES512 | secp521r1  |\n\n# How do I fix it?\n\nUpdate 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.\n\n# Will the fix impact my users?\n\nThere 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. \n\n","status":"published","published":"2022-12-22T03:32:22Z","modified":"2024-06-24T21:23:38Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T15:46:42.077781Z"},{"id":"CLSA-2026-1774657372","title":"TuxCare security update for jsonwebtoken (3 CVEs)","description":"TuxCare rebuilt jsonwebtoken to address 3 CVEs. Fixed in 8.5.1-tuxcare.1.","status":"published","published":"2026-08-04T14:52:15Z","modified":"2026-10-15T09:47:48.482531338Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"id":"CLSA-2026-1776818206","title":"TuxCare security update for jsonwebtoken (2 CVEs)","description":"TuxCare rebuilt jsonwebtoken to address 2 CVEs. Fixed in 0.4.0-tuxcare.6.","status":"published","published":"2026-08-04T14:52:27Z","modified":"2026-10-15T09:45:47.165006311Z","updated_at":"2026-11-02T15:43:44.009773Z"},{"id":"CLSA-2026-1776818208","title":"TuxCare security update for jsonwebtoken (3 CVEs)","description":"TuxCare rebuilt jsonwebtoken to address 3 CVEs. Fixed in 0.4.1-tuxcare.3.","status":"published","published":"2026-08-04T14:52:27Z","modified":"2026-10-15T09:45:45.676261562Z","updated_at":"2026-11-02T15:43:44.384419Z"},{"id":"CLSA-2026-1786361774","title":"TuxCare security update for jsonwebtoken (2 CVEs)","description":"TuxCare rebuilt jsonwebtoken to address 2 CVEs. Fixed in 5.4.0-tuxcare.1.","status":"published","published":"2026-08-10T11:36:14Z","modified":"2026-10-15T09:45:58.184593846Z","updated_at":"2026-11-02T15:43:46.850893Z"},{"id":"CLSA-2026-1787322010","title":"TuxCare security update for jsonwebtoken (3 CVEs)","description":"TuxCare rebuilt jsonwebtoken to address 3 CVEs. Fixed in 0.3.0-tuxcare.3.","status":"published","published":"2026-08-21T14:20:10Z","modified":"2026-10-15T09:46:45.665795689Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"ROOT-APP-NPM-CVE-2022-23539","title":"CVE-2022-23539 in jsonwebtoken - Patched by Root","description":"Root has patched CVE-2022-23539 in the jsonwebtoken package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-22T07:10:32Z","modified":"2026-09-22T08:15:04.198738334Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
