GHSA-q3gh-5r98-j4h3CriticalCVSS 9.8
RSA-PSS signature validation vulnerability by prepending zeros in jsrsasign
🔗 CVE IDs covered (1)
📋 Description
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
🎯 Affected products1
- npm/jsrsasign:>= 3.0.0, < 8.0.16
🔗 References (14)
- https://github.com/kjur/jsrsasign/security/advisories/GHSA-q3gh-5r98-j4h3
- https://nvd.nist.gov/vuln/detail/CVE-2020-14968
- https://github.com/kjur/jsrsasign/issues/438
- https://github.com/kjur/jsrsasign/commit/3bcc088c727658d7235854cd2a409a904cc2ce99
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14968
- https://kjur.github.io/jsrsasign/api/symbols/RSAKey.html#.verifyWithMessageHashPSS
- https://vuldb.com/?id.157125
- https://github.com/kjur/jsrsasign/releases/tag/8.0.17
- https://github.com/kjur/jsrsasign/releases/tag/8.0.18
- https://kjur.github.io/jsrsasign/
- https://www.npmjs.com/package/jsrsasign
- https://security.netapp.com/advisory/ntap-20200724-0001/
- https://www.npmjs.com/advisories/1541
- https://github.com/advisories/GHSA-q3gh-5r98-j4h3