GitHub Advisoryadvisory · npm
GHSA-27fj-mc8w-j9wg RSA signature validation vulnerability on maleable encoded message in jsrsasign
CRITICAL
Official page ↗
- Aliases
- CVE-2021-30246
- Ecosystem
- npm
- Packages
- jsrsasign
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- Weaknesses
- CWE-347
- Reviewed
- 2021-04-13
Affected packages
• npm jsrsasign: < 10.2.0 → fixed in 10.2.0
Description
Impact
Vulnerable jsrsasign will accept RSA signature with improper PKCS#1.5 padding.
Decoded RSA signature value consists following form:
`01(ff...(8 or more ffs)...ff)00[ASN.1 OF DigestInfo]`
Its byte length must be the same as RSA key length, however such checking was not sufficient.
To make crafted message for practical attack is very hard.
Patches
Users validating RSA signature should upgrade to 10.2.0 or later.
Workarounds
There is no workaround. Not to use RSA signature validation in jsrsasign.
ACKNOWLEDGEMENT
Thanks to Daniel Yahyazadeh @yahyazadeh for reporting and analyzing this vulnerability.
Related
Alias · CVE (1)
- CVE-2021-30246 In the jsrsasign package through 10.1.13 for Node.js, some invalid RSA PKCS#1 v1.5 signatures are mistakenly recognized to be valid. vulnerability
Weakness · CWE (1)
- CWE-347 Improper Verification of Cryptographic Signature weakness