Executive brief
jsrsasign is a popular JavaScript library for cryptographic operations including RSA signature verification. A flaw in its PKCS#1 v1.5 signature parsing causes it to incorrectly accept invalid signatures as valid, potentially allowing forged signatures to be accepted if an application relies on this library for authentication or integrity checking.
Technical details
The vulnerability is a signature verification bypass in jsrsasign's RSA PKCS#1 v1.5 signature verification implementation (CWE-347: Improper Verification of Cryptographic Signature). The root cause is lenient parsing of the block type byte and padding bytes during signature verification, allowing malformed signatures to pass validation checks that should reject them. The vulnerability affects all versions through 10.1.13, with no authentication required—any code using the library's signature verification functions is potentially affected. While no known practical attack exists, an attacker could forge RSA signatures that would be incorrectly validated by applications using vulnerable versions. The fix was released in jsrsasign 10.2.0.
Affected products
- jsrsasign jsrsasign before 10.2.0
Timeline
- 2022-02-09: disclosed