Forge: PKCS#12 MAC forgery and constant-key PBE via zero iteration count (digitalbazaar forge)

CVE-2026-118782
HIGH 7.5

At a glance

Source
CVE.org
State
PUBLISHED
Published
Updated
Assigner
GitHub_M

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.

Weaknesses (CWE)

  • CWE-354 — Improper Validation of Integrity Check Value
  • CWE-1284 — Improper Validation of Specified Quantity in Input

References

Scores

VersionScoreVectorScored by
CVSS 3.1HIGH 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:NGitHub_M

European references

Affected products

ProductVersions
digitalbazaar · forgeaffected < 1.4.1

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
ENISA EUVDENISA — reproduction authorised, source acknowledged