CVE Catalog

CVE-2026-119186

MediumCVSS 5.9
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.21%

11th percentile - higher than 11% of all known CVEs

Summary

Prior to 1.4.1, node-forge did not validate the AES-GCM tagLength option passed to start() during decryption via forge.cipher.createDecipher(). When an application derived tagLength from received data or used an unset or zero-like value, and the authentication tag was empty or missing, decipher.finish() accepted unauthenticated ciphertext. This is fixed in version 1.4.1.

Risk Assessment

Applications using AES-GCM in node-forge with tagLength derived from input data may accept unauthenticated ciphertext, breaking integrity and enabling data manipulation. Applications using the 128-bit default or a fixed valid tag length are unaffected.

Recommendation

Update node-forge to version 1.4.1 or later. Verify that tagLength is not derived from incoming data and use a fixed, valid value.

Other vulnerabilities in node-forge

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS