Skip to content

2020.06.22 CVE-2020-14968 RSA-PSS signature validation vulnerability by prepending zeros

Low
kjur published GHSA-q3gh-5r98-j4h3 Jun 23, 2020

Package

jsrsasign (npm, bower)

Affected versions

3.0.0 - 8.0.16

Patched versions

8.0.17

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.

ACKNOWLEDGEMENT

Thanks to Antonio de la Piedra for reporting this vulnerability.

Reference

GHSA-q3gh-5r98-j4h3
#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
https://tools.ietf.org/html/rfc8017
https://www.npmjs.com/advisories/1541

Severity

Low

CVE ID

CVE-2020-14968

Weaknesses

No CWEs