critical9.1
CVE-2021-30246
RSA signature validation vulnerability on maleable encoded message in jsrsasign
Impact
### 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.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | jsrsasign | < 10.2.0 | 10.2.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Kjur | Jsrsasign | through 10.1.13 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/kjur/jsrsasign/issues/478
- https://github.com/kjur/jsrsasign/releases/tag/10.1.13
- https://kjur.github.io/jsrsasign/
- https://github.com/advisories/GHSA-27fj-mc8w-j9wg
- https://github.com/kjur/jsrsasign/security/advisories/GHSA-27fj-mc8w-j9wg
- https://nvd.nist.gov/vuln/detail/CVE-2021-30246