Description
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, RSASSA PKCS#1 v1.5 signature verification accepts forged signatures for low public exponent keys (e=3). Attackers can forge signatures by stuffing “garbage” bytes within the ASN structure in order to construct a signature that passes verification, enabling Bleichenbacher style forgery. This issue is similar to CVE-2022-24771, but adds bytes in an addition field within the ASN structure, rather than outside of it. Additionally, forge does not validate that signatures include a minimum of 8 bytes of padding as defined by the specification, providing attackers additional space to construct Bleichenbacher forgeries. Version 1.4.0 patches the issue.
Problem types
CWE-347: Improper Verification of Cryptographic Signature
CWE-20: Improper Input Validation
Product status
References
github.com/.../forge/security/advisories/GHSA-ppp5-5v6c-4jwp
github.com/.../forge/security/advisories/GHSA-ppp5-5v6c-4jwp
datatracker.ietf.org/doc/html/rfc2313
mailarchive.ietf.org/.../openpgp/5rnE9ZRN1AokBVj3VqblGlP63QE
www.rfc-editor.org/rfc/rfc8017.html