CVE-2026-33891: Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
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.
Security readout for executives and security teams
Plain-English summary
Applications using Forge before 1.4.0 may freeze and consume all available CPU when vulnerable cryptographic code receives a zero value. This threatens service availability, but the sources do not indicate data theft, data modification, or confirmed exploitation in the wild.
Executive priority
Prioritize internet-facing or multi-tenant services where attacker-influenced data reaches Forge cryptographic operations. Patch promptly because one request may consume a process indefinitely. Lower the immediate priority only after confirming the vulnerable version is absent or the affected function is unreachable.
Technical view
The bundled jsbn BigInteger.modInverse() implementation can enter an infinite loop when processing zero. Its Extended Euclidean Algorithm never reaches an exit condition, hanging the process at 100% CPU. Forge 1.4.0 patches the flaw. CVSS 3.1 rates it 7.5, reflecting network-reachable, unauthenticated availability impact.
Likely exposure
Exposure exists where applications deploy node-forge versions below 1.4.0 and untrusted or remotely influenced values can reach BigInteger.modInverse(). Installing the package alone does not establish exploitability; dependency versions, deployed artifacts, and application call paths must be examined.
Exploitation context
The CVSS vector describes network-accessible exploitation without privileges or user interaction, but actual reachability depends on application integration. The supplied record is not in KEV, and the cited source bundle provides no evidence of active exploitation or a public weaponized exploit.
Researcher notes
CWE-606 and CWE-835 align with an unchecked loop condition and infinite loop. The defect originates in Forge's bundled jsbn code. The source bundle identifies the fixing commit, but does not document observed attacks, exploit prevalence, or every application-level input path.
Mitigation direction
Upgrade node-forge/forge to version 1.4.0 or later.
Rebuild and redeploy every application image or bundle containing an affected version.
Review vendor and Red Hat guidance for packaged dependencies and applicable errata.
Temporarily prevent untrusted values from reaching BigInteger.modInverse() until upgrades are complete.
Validation and detection
Check manifests, lockfiles, SBOMs, and deployed bundles for node-forge versions below 1.4.0.
Confirm dependency resolution and production artifacts contain version 1.4.0 or later.
Review application call paths for untrusted input reaching BigInteger.modInverse().
Monitor affected services for sustained CPU saturation and unexplained process hangs.
Run availability regression tests after upgrading; avoid deliberately triggering production systems.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-606: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-606 · source CWE mapping
Unchecked Input for Loop Condition
Unchecked Input for Loop Condition represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Loop with Unreachable Exit Condition ('Infinite Loop')
Loop with Unreachable Exit Condition ('Infinite Loop') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.