CVE-2022-23540
jsonwebtoken vulnerable to signature validation bypass due to insecure default algorithm in jwt.verify()
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification. Users are affected if you do not specify algorithms in the jwt.verify() function. This issue has been fixed, please update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method. There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- High
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.4
jsonwebtoken vulnerable to signature validation bypass due to insecure default algorithm in jwt.verify()
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification. Users are affected if you do not specify algorithms in the jwt.verify() function. This issue has been fixed, please update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method. There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
- Record
CVE-2022-23540- CVSS 3.1
- 6.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L - Weakness
- CWE-287
- Updated
- 2026-11-02
EUVDEUVD-2022-7728
6.4
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification. Users are affected if you do not specify algorithms in the jwt.verify() function. This issue has been fixed, please update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method. There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
- Record
EUVD-2022-7728- CVSS 3.1
- 6.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-qwph-4952-7xr6
6.4
jsonwebtoken vulnerable to signature validation bypass due to insecure default algorithm in jwt.verify()
Overview
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition and a falsy secret or key in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification.
Am I affected?
You will be affected if all the following are true in the jwt.verify() function:
- a token with no signature is received
- no algorithms are specified
- a falsy (e.g. null, false, undefined) secret or key is passed
How do I fix it?
Update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method.
Will the fix impact my users?
There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
- Record
GHSA-qwph-4952-7xr6- CVSS 3.1
- 6.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L - Weakness
- CWE-287, CWE-327, CWE-347
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-73v8-v6g4-vrpm No score
Arbitrary File Overwrite in decompress-zip
Vulnerable versions of decompress-zip are affected by the Zip-Slip vulnerability, an arbitrary file write vulnerability. The vulnerability occurs because decompress-zip does not verify that extracted files do not resolve to targets outside of the extraction root directory.
Recommendation
For decompress-zip 0.2.x upgrade to 0.2.2 or later.
For decompress-zip 0.3.x upgrade to 0.3.2 or later.
- Record
GHSA-73v8-v6g4-vrpm- Updated
- 2026-11-02
NVD
6.4
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification. Users are affected if you do not specify algorithms in the jwt.verify() function. This issue has been fixed, please update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method. There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
- Record
CVE-2022-23540- CVSS 3.1
- 6.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L - CVSS 3.1
- 7.6 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L - Weakness
- CWE-287, CWE-347
- Updated
- 2026-11-02
OSV
6.4
jsonwebtoken vulnerable to signature validation bypass due to insecure default algorithm in jwt.verify()
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification. Users are affected if you do not specify algorithms in the jwt.verify() function. This issue has been fixed, please update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method. There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
- Record
CVE-2022-23540- CVSS 3.1
- 6.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L - Weakness
- CWE-287
- Updated
- 2026-11-02
Show 10 moreShow less
OSVGHSA-qwph-4952-7xr6
6.4
jsonwebtoken vulnerable to signature validation bypass due to insecure default algorithm in jwt.verify()
Overview
In versions <=8.5.1 of jsonwebtoken library, lack of algorithm definition and a falsy secret or key in the jwt.verify() function can lead to signature validation bypass due to defaulting to the none algorithm for signature verification.
Am I affected?
You will be affected if all the following are true in the jwt.verify() function:
- a token with no signature is received
- no algorithms are specified
- a falsy (e.g. null, false, undefined) secret or key is passed
How do I fix it?
Update to version 9.0.0 which removes the default support for the none algorithm in the jwt.verify() method.
Will the fix impact my users?
There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the none algorithm. If you need 'none' algorithm, you have to explicitly specify that in jwt.verify() options.
- Record
GHSA-qwph-4952-7xr6- CVSS 3.1
- 6.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L - Weakness
- CWE-287, CWE-327, CWE-347
- Updated
- 2026-11-02
OSVCLSA-2026-1774225215 No score
TuxCare security update for decompress-zip (1 CVE)
TuxCare rebuilt decompress-zip to address 1 CVE. Fixed in 0.1.0-tuxcare.1.
- Record
CLSA-2026-1774225215- Updated
- 2026-11-02
OSVCLSA-2026-1774398084 No score
TuxCare security update for git-clone (5 CVEs)
TuxCare rebuilt git-clone to address 5 CVEs. Fixed in 0.1.0-tuxcare.1.
- Record
CLSA-2026-1774398084- Updated
- 2026-11-02
OSVCLSA-2026-1774657372 No score
TuxCare security update for jsonwebtoken (3 CVEs)
TuxCare rebuilt jsonwebtoken to address 3 CVEs. Fixed in 8.5.1-tuxcare.1.
- Record
CLSA-2026-1774657372- Updated
- 2026-11-02
OSVCLSA-2026-1776818206 No score
TuxCare security update for jsonwebtoken (2 CVEs)
TuxCare rebuilt jsonwebtoken to address 2 CVEs. Fixed in 0.4.0-tuxcare.6.
- Record
CLSA-2026-1776818206- Updated
- 2026-11-02
OSVCLSA-2026-1776818208 No score
TuxCare security update for jsonwebtoken (3 CVEs)
TuxCare rebuilt jsonwebtoken to address 3 CVEs. Fixed in 0.4.1-tuxcare.3.
- Record
CLSA-2026-1776818208- Updated
- 2026-11-02
OSVCLSA-2026-1784683085 No score
TuxCare security update for jsonwebtoken (1 CVE)
TuxCare rebuilt jsonwebtoken to address 1 CVE. Fixed in 0.3.0-tuxcare.1.
- Record
CLSA-2026-1784683085- Updated
- 2026-11-02
OSVCLSA-2026-1784769530 No score
TuxCare security update for jsonwebtoken (1 CVE)
TuxCare rebuilt jsonwebtoken to address 1 CVE. Fixed in 0.1.0-tuxcare.1.
- Record
CLSA-2026-1784769530- Updated
- 2026-11-02
OSVGHSA-73v8-v6g4-vrpm No score
Arbitrary File Overwrite in decompress-zip
Vulnerable versions of decompress-zip are affected by the Zip-Slip vulnerability, an arbitrary file write vulnerability. The vulnerability occurs because decompress-zip does not verify that extracted files do not resolve to targets outside of the extraction root directory.
Recommendation
For decompress-zip 0.2.x upgrade to 0.2.2 or later.
For decompress-zip 0.3.x upgrade to 0.3.2 or later.
- Record
GHSA-73v8-v6g4-vrpm- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2022-23540 No score
CVE-2022-23540 in jsonwebtoken - Patched by Root
Root has patched CVE-2022-23540 in the jsonwebtoken package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2022-23540- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
decompress-zipnpm |
before 0.2.2 | 0.2.2 |
decompress-zipnpm |
0.3.0 up to 0.3.2 | 0.3.2 |
jsonwebtokennpm |
before 9.0.0 | 9.0.0 |
decompress-zipTuxCare:npm |
0.1.0-tuxcare.0 up to 0.1.0-tuxcare.1, plus listed versions 0.1.0 |
0.1.0-tuxcare.1 |
jsonwebtokenTuxCare:npm From an advisory covering 3 CVEs |
8.5.1-tuxcare.0 up to 8.5.1-tuxcare.1, plus listed versions 8.5.1 |
8.5.1-tuxcare.1 |
jsonwebtokenTuxCare:npm From an advisory covering 2 CVEs |
0.4.0-tuxcare.0 up to 0.4.0-tuxcare.6, plus listed versions 0.4.00.4.0-tuxcare.10.4.0-tuxcare.20.4.0-tuxcare.30.4.0-tuxcare.40.4.0-tuxcare.5 |
0.4.0-tuxcare.6 |
jsonwebtokenTuxCare:npm From an advisory covering 3 CVEs |
0.4.1-tuxcare.0 up to 0.4.1-tuxcare.3, plus listed versions 0.4.10.4.1-tuxcare.10.4.1-tuxcare.2 |
0.4.1-tuxcare.3 |
jsonwebtokenTuxCare:npm |
0.3.0-tuxcare.0 up to 0.3.0-tuxcare.1, plus listed versions 0.3.0 |
0.3.0-tuxcare.1 |
jsonwebtokenTuxCare:npm |
0.1.0-tuxcare.0 up to 0.1.0-tuxcare.1, plus listed versions 0.1.0 |
0.1.0-tuxcare.1 |
jsonwebtokenRoot:npm |
before 8.2.0-aikido.2 | 8.2.0-aikido.28.5.1-aikido.48.5.1-aikido.58.2.0-aikido.3 |
@rootio/jsonwebtokenRoot:npm |
before 8.5.1-root.io.3 | 8.5.1-root.io.38.2.0-root.io.18.2.0-root.io.28.5.1-root.io.48.5.1-root.io.58.2.0-root.io.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2022-23540 is a medium vulnerability (CVSS 6.4) in Auth0 Jsonwebtoken, published September 2, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.57%, the 47th percentile. Fixed in decompress-zip 0.2.2.
References
github.com/auth0/node-jsonwebtoken/security/advisories/GHSA-qwph-4952-7xr6
github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3
security.netapp.com/advisory/ntap-20240621-0007
github.com/nodejs/security-wg/blob/master/vuln/npm/488.json
snyk.io/research/zip-slip-vulnerability
npmjs.com/advisories/777