CVE-2022-24772: Improper Verification of Cryptographic Signature in `node-forge`
Impact
RSA PKCS#1 v1.5 signature verification code does not check for tailing garbage bytes after decoding a DigestInfo ASN.1 structure. This can allow padding bytes to be removed and garbage data added to forge a signature when a low public exponent is being used.
Patches
The issue has been addressed in node-forge 1.3.0.
References
For more information, please see "Bleichenbacher's RSA signature forgery based on implementation error" by Hal Finney.
For more information
If you have any questions or comments about this advisory: Open an issue in forge Email us at example email address
Other sources
A flaw was found in the node-forge package. This signature verification leniency allows an attacker to forge a signature.
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.3.0, RSA PKCS#1 v1.5 signature verification code does not check for tailing garbage bytes after decoding a DigestInfo ASN.1 structure. This can allow padding bytes to be removed and garbage data added to forge a signature when a low public exponent is being used. The issue has been addressed in node-forge version 1.3.0. There are currently no known workarounds.
Affected Software
Remediation
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the severity of CVE-2022-24772?
CVE-2022-24772 is considered to have a high severity due to the potential for signature forgery.
How do I fix CVE-2022-24772?
To fix CVE-2022-24772, update the node-forge package to version 1.3.0 or later.
What software is affected by CVE-2022-24772?
CVE-2022-24772 affects node-forge versions prior to 1.3.0 across various sources including Red Hat and npm.
What type of vulnerability is CVE-2022-24772?
CVE-2022-24772 is a cryptographic vulnerability related to RSA PKCS#1 v1.5 signature verification.
Can CVE-2022-24772 be exploited remotely?
Yes, CVE-2022-24772 can be exploited remotely if an attacker can send crafted inputs to a vulnerable system.