Forge (node-forge): Incomplete X.509 name constraint enforcement in certificate chain validation
Summary
Forge (node-forge), a JavaScript implementation of TLS and cryptography, does not decode or enforce the X.509 nameConstraints extension in pki.verifyCertificateChain() before version 1.4.3. A name-constrained certificate authority can therefore issue a leaf certificate for names outside its permitted subtree or inside an excluded subtree, and node-forge accepts the chain. Exploitation requires control of a name-constrained CA that chains to a trusted root, either its private key or the ability to obtain an out-of-scope certificate, and mainly affects private PKI setups and forge.tls clients.
Affected
- node-forge (forge) versions before 1.4.3
- Chains that contain a non-critical nameConstraints extension are affected; chains without nameConstraints are not affected
Fixed in
- Fixed in version 1.4.3
Workaround
- Unknown. No vendor-documented workaround; upgrading to 1.4.3 is the remedy.
Exploitation
- No known exploitation in the wild. Unconfirmed, as CISA KEV was not checked directly.
- A public proof of concept appears to have been added to the repository; it is unverified.
- Exploitation requires a name-constrained CA chaining to a trusted root and either its private key or an out-of-scope certificate.
Our recommendation
- Inventory all node-forge installations, including transitive dependencies (for example with npm ls node-forge).
- Upgrade to version 1.4.3 or later in the normal dependency update cycle; treat as urgent if you run name-constrained internal CAs with forge-based validation.
- Review internal PKI that uses name-constrained intermediate CAs.
- Plan for the behaviour change: chains violating non-critical nameConstraints now fail verification, so previously accepted internal chains may be rejected.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-3cc4-3294-vgjf github.com
- Forge release v1.4.3 github.com
- Forge pull request 1169 github.com
- Forge commit 6b23eae (nameConstraints enforcement) github.com
- Forge commit 862aa5f (enforce nameConstraints) github.com
- Forge CHANGELOG github.com
- CCB Belgium advisory on node-forge ccb.belgium.be
- npm package node-forge www.npmjs.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 11 Nov 2026, 06:18.
Original description (NVD)
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.3, pki.verifyCertificateChain() in lib/x509.js does not decode or enforce the X.509 nameConstraints extension while validating certificate paths. A name-constrained certificate authority with a non-critical extension can therefore issue a leaf certificate with a subjectAltName dNSName or subject commonName outside a permitted subtree or inside an excluded subtree, and node-forge accepts the chain. Exploitation requires a name-constrained CA that chains to a trusted root and either its private key or the ability to obtain an out-of-scope certificate, allowing impersonation of names outside the delegated namespace, including against forge.tls clients. Chains without nameConstraints are not affected, and affected versions safely reject critical nameConstraints as unsupported rather than accepting them. This issue is fixed in version 1.4.3.
NVD references (6)
- https://github.com/digitalbazaar/forge/commit/6b23eae8beac316b6867bdb0e7ad7c2c959a97f6
- https://github.com/digitalbazaar/forge/commit/862aa5f630bdf40b0dfda408d6ac357bf35a7d6b
- https://github.com/digitalbazaar/forge/pull/1169
- https://github.com/digitalbazaar/forge/releases/tag/v1.4.3
- https://github.com/digitalbazaar/forge/security/advisories/GHSA-3cc4-3294-vgjf
- https://github.com/digitalbazaar/forge/security/advisories/GHSA-3cc4-3294-vgjf
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
