Description
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used BigInteger.prototype.modInverse(), bnModInverse(), lib/jsbn.js, RSA public exponent e to process the relevant input or security decision. node-forge's bundled jsbn implementation entered an infinite loop when BigInteger.prototype.modInverse() received a negative value or modulus. An attacker who could control the RSA public exponent passed to key generation, or a direct modInverse() operand, could block the Node.js event loop at full CPU. Parsed DER, PEM, JWK, PKCS#12, X.509, and TLS values are unsigned and cannot trigger this issue. This issue is fixed in version 1.4.1.
Published: 2026-10-29
Score: 2.9 Low
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Patch Now
AI Analysis

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.

Generated by OpenCVE AI on October 29, 2026 at 20:38 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Forge to version 1.4.1 or later; this contains the fix that prevents the infinite loop in BigInteger.modInverse when a negative value is supplied.
  • If upgrading is not immediately possible, implement input validation to reject negative RSA public exponents or modInverse operands before passing them to the Forge library.
  • Ensure that only trusted code constructs RSA key material so that untrusted input cannot supply a negative exponent or operand.

Generated by OpenCVE AI on October 29, 2026 at 20:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 29 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Digitalbazaar
Digitalbazaar forge
Vendors & Products Digitalbazaar
Digitalbazaar forge

Thu, 29 Oct 2026 19:00:00 +0000

Type Values Removed Values Added
Description Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used BigInteger.prototype.modInverse(), bnModInverse(), lib/jsbn.js, RSA public exponent e to process the relevant input or security decision. node-forge's bundled jsbn implementation entered an infinite loop when BigInteger.prototype.modInverse() received a negative value or modulus. An attacker who could control the RSA public exponent passed to key generation, or a direct modInverse() operand, could block the Node.js event loop at full CPU. Parsed DER, PEM, JWK, PKCS#12, X.509, and TLS values are unsigned and cannot trigger this issue. This issue is fixed in version 1.4.1.
Title Forge: Denial of Service via infinite loop in BigInteger.modInverse() with negative input (incomplete fix of CVE-2026-33891)
Weaknesses CWE-835
References
Metrics cvssV3_1

{'score': 2.9, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L'}


Subscriptions

Digitalbazaar Forge
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-29T18:49:28.661Z

Reserved: 2026-10-28T19:20:05.019Z

Link: CVE-2026-118781

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-29T19:17:20.843

Modified: 2026-10-29T19:17:20.843

Link: CVE-2026-118781

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T20:30:18Z

Weaknesses
  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')