Impact
Forge implements Transport Layer Security in JavaScript and uses BigInteger.modInverse to process RSA public exponents and operands. In versions before 1.4.1 the BigInteger.prototype.modInverse method enters an infinite loop when it receives a negative value or modulus. The loop drains CPU and blocks the Node.js event loop, preventing the application from processing any further events. This results in a denial of service to the process that is running the vulnerable code.
Affected Systems
The vulnerability affects the Forge library, also known as node-forge, developed by Digital Bazaar. Any installation of Forge prior to version 1.4.1 is impacted. Applications that incorporate these older versions of Forge for RSA key generation or parsing of cryptographic structures are vulnerable.
Risk and Exploitability
The CVSS score of 2.9 indicates a low severity impact. EPSS data is not available and the issue is not listed in the CISA KEV catalog. The attack would require the attacker to influence the RSA public exponent or supply an operand to modInverse, which could be feasible if the application allows user-provided keys or if an attacker can control the key generation process. If successful, the attacker could exhaust CPU resources and cause the Node.js event loop to hang, leading to service disruption.
OpenCVE Enrichment