Description
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, node-forge accepted a PKCS#12 MAC or PKCS#12 password-based encryption iteration count of zero or less. pki.pbe.generatePkcs12Key() then returned a constant key independent of the password and salt, allowing crafted PKCS#12 input processed by forge.pkcs12.pkcs12FromAsn1() to bypass password-based integrity checks. Predictable encryption keys and IVs also affected PKCS#12 PBE using pbeWithSHAAnd3-KeyTripleDES-CBC or pbewithSHAAnd40BitRC2-CBC, including shrouded key bags, encrypted SafeContents, and PKCS#8 ENCRYPTED PRIVATE KEY input processed independently by forge.pki.decryptPrivateKeyInfo(). PBES2/PBKDF2-encrypted content is unaffected. This issue is fixed in version 1.4.1.
Published: 2026-10-29
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: Bypass of PKCS#12 password integrity checks
Action: Apply Patch
AI Analysis

Impact

The vulnerability lies in the Forge library’s handling of PKCS#12 data. When an iteration count of zero or a negative number is accepted, the key derivation routine produces a constant key that does not depend on the supplied password or salt. As a result, a crafted PKCS#12 file processed by forge.pkcs12.pkcs12FromAsn1() or forge.pki.decryptPrivateKeyInfo() can bypass password-based integrity checks, allowing an attacker to obtain or forge private keys and certificates that are normally protected by a password. This weakness specifically targets PBE algorithms such as pbeWithSHAAnd3-KeyTripleDES-CBC, pbewithSHAAnd40BitRC2-CBC, and their associated shrouded key bags and encrypted SafeContents.

Affected Systems

The flaw affects the Digital Bazaar Forge (node‑forge) library in all releases older than v1.4.1. Developers using these versions in applications that accept external PKCS#12 files, encrypted private keys, or certificates are potentially vulnerable unless additional checks are applied.

Risk and Exploitability

With a CVSS score of 7.5, the vulnerability presents a medium‑to‑high severity. The EPSS metric is not available, and the issue is not listed in the CISA KEV catalog, indicating no known large‑scale exploitation at this time. Attackers can exploit the flaw by supplying a crafted PKCS#12 file with a zero or negative iteration count. If the application processes such input locally or receives it from a remote source (for example, through an upload endpoint), an attacker can obtain or create private keys without knowing the correct password, potentially leading to unauthorized access to encrypted data, TLS terminations, or other privileged operations. The vulnerability requires the attacker to control the input to the library but does not require elevated privileges in the library itself, making it a practical risk for applications that trust external PKCS#12 data.

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

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Forge v1.4.1 or later
  • Replace any legacy code that feeds PKCS#12 data directly to forge.pkcs12 or forge.pki.decryptPrivateKeyInfo with updated logic that enforces positive iteration counts
  • Implement application-level validation to reject PKCS#12 files where the iteration count is zero or less
  • Regularly audit logs for unexpected private key usage and monitor for unauthorized certificate installation

Generated by OpenCVE AI on October 29, 2026 at 20:37 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, node-forge accepted a PKCS#12 MAC or PKCS#12 password-based encryption iteration count of zero or less. pki.pbe.generatePkcs12Key() then returned a constant key independent of the password and salt, allowing crafted PKCS#12 input processed by forge.pkcs12.pkcs12FromAsn1() to bypass password-based integrity checks. Predictable encryption keys and IVs also affected PKCS#12 PBE using pbeWithSHAAnd3-KeyTripleDES-CBC or pbewithSHAAnd40BitRC2-CBC, including shrouded key bags, encrypted SafeContents, and PKCS#8 ENCRYPTED PRIVATE KEY input processed independently by forge.pki.decryptPrivateKeyInfo(). PBES2/PBKDF2-encrypted content is unaffected. This issue is fixed in version 1.4.1.
Title Forge: PKCS#12 MAC forgery and constant-key PBE via zero iteration count
Weaknesses CWE-1284
CWE-354
References
Metrics cvssV3_1

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


Subscriptions

Digitalbazaar Forge
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-29T18:51:02.388Z

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

Link: CVE-2026-118782

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-118782

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-1284

    Improper Validation of Specified Quantity in Input

  • CWE-354

    Improper Validation of Integrity Check Value