CVE-2026-119186: digitalbazaar forge · Improper Validation of Integrity Check Value
Affects digitalbazaar forgeSource CVE Database V5
Not known to be exploited · CVSS 5.9 Medium : upgrade to 1.4.1 when convenient.
Data as of 30 Oct 2026, 20:38 UTC
Thin evidence
One scorer or none| CNA (GitHub_M) | CVSS 3.1 | 5.9 |
|---|
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 10% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 1.4.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:NExploitation evidence
Disclosed: evidence found.
CVE published 29 Oct 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade forge and @digitalbazaar/forge to 1.4.1.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| digitalbazaarforge | Affected
| Fixed in
|
npm@digitalbazaar/forgepkg:npm/@digitalbazaar/forgeOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade to forge version 1.4.1 or later, where this issue is fixed. Applications should avoid deriving the AES-GCM tagLength from untrusted input or using unset or zero-like values. Using the default 128-bit tag length or a fixed valid tag length prevents the vulnerability.
Description
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, node-forge did not validate the AES-GCM tagLength option passed to start() during decryption through forge.cipher.createDecipher(). When an application derived tagLength from received data or used an unset or zero-like configuration value, a value that converted to zero together with an empty or missing authentication tag caused the calculated and supplied tags to compare as empty, so decipher.finish() accepted unauthenticated ciphertext. Applications that omit tagLength to use the 128-bit default or pass a fixed valid tag length are unaffected. This issue is fixed in version 1.4.1.