Description
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
Problem types
CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop')
Product status
References
github.com/.../forge/security/advisories/GHSA-5m6q-g25r-mvwx
github.com/...ommit/9bb8d67b99d17e4ebb5fd7596cd699e11f25d023