RSA-PSS signature validation vulnerability by prepending zeros in jsrsasign
Published 26 Jun 2020 · Updated 8 Nov 2023
Affected package
- Affected
- >=3.0.0 <8.0.17
- Fixed in
- 8.0.17
npm install jsrsasign@8.0.17Details
Impact
Jsrsasign can verify RSA-PSS signature which value can expressed as BigInteger. When there is a valid RSA-PSS signature value, this vulnerability is also accept value with prepending zeros as a valid signature.
- If you are not use RSA-PSS signature validation, this vulnerability is not affected.
- Risk to accept a forged or crafted message to be signed is low.
- Risk to raise memory corruption is low since jsrsasign uses BigInteger class.
Patches
Users using RSA-PSS signature validation should upgrade to 8.0.17.
Workarounds
Reject RSA-PSS signatures with unnecessary prepending zeros.
References
https://github.com/kjur/jsrsasign/security/advisories/GHSA-q3gh-5r98-j4h3 https://github.com/kjur/jsrsasign/issues/438 https://nvd.nist.gov/vuln/detail/CVE-2020-14968 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14968 https://vuldb.com/?id.157125 https://kjur.github.io/jsrsasign/api/symbols/RSAKey.html#.verifyWithMessageHashPSS
Is GHSA-q3gh-5r98-j4h3 in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected jsrsasign, and gives you the command that fixes it.
References
- Linkgithub.com/kjur/jsrsasign/security/advisories/GHSA-q3gh-5r98-j4h3
- Advisorynvd.nist.gov/vuln/detail/CVE-2020-14968
- Linkgithub.com/kjur/jsrsasign/issues/438
- Linkgithub.com/kjur/jsrsasign/commit/3bcc088c727658d7235854cd2a409a904cc2ce99
- Linkcve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14968
- Packagegithub.com/kjur/jsrsasign
- Linkgithub.com/kjur/jsrsasign/releases/tag/8.0.17
- Linkgithub.com/kjur/jsrsasign/releases/tag/8.0.18
- Linkkjur.github.io/jsrsasign
- Linkkjur.github.io/jsrsasign/api/symbols/RSAKey.html#.verifyWithMessageHashPSS
- Linksecurity.netapp.com/advisory/ntap-20200724-0001
- Linkvuldb.com/?id.157125
- Linkwww.npmjs.com/advisories/1541
- Linkwww.npmjs.com/package/jsrsasign
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.