---
id: "CVE-2026-125336"
page: "https://infrastack.ai/live/CVE-2026-125336"
kind: "vulnerability"
aliases: ["CVE-2026-125336"]
title: "node-forge: certificate chain check skips name constraints, allowing impersonation"
severity: "high"
cvss: 7.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["node-forge", "node.js", "package", "tls", "x509"]
not_affected_if: ["no-forge-tls-or-chain-verification", "no-name-constrained-cas", "version-1.4.3-or-later"]
published_at: "2026-11-10T19:21:11+00:00"
first_seen_at: "2026-11-10T19:25:15+00:00"
updated_at: "2026-11-10T19:47:39+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-125336", "first_seen_at": "2026-11-10T19:25:15+00:00"}]
exploit_sources: []
---

# node-forge: certificate chain check skips name constraints, allowing impersonation

Link for people: https://infrastack.ai/live/CVE-2026-125336 (this .md is for agents)

node-forge's certificate chain verification ignores the X.509 nameConstraints extension when the constraint is non-critical. A holder of a name-constrained CA can issue a leaf certificate for names outside the allowed namespace, and node-forge accepts it, including in forge.tls clients.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed node-forge version with `npm ls node-forge` and look for any version below `1.4.3`.
- Search lockfiles and dependency trees for node-forge, since it is often pulled in transitively.
- Look for use of `forge.tls` or `pki.verifyCertificateChain` in your code.

## Fix

- node-forge: move to `1.4.3` or later.

## Timeline

- 2026-11-10T19:25:15+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-125336

## Documents

- [advisory] Vendor advisory: github.com https://github.com/digitalbazaar/forge/security/advisories/GHSA-3cc4-3294-vgjf
- [fix] Patch: github.com https://github.com/digitalbazaar/forge/commit/6b23eae8beac316b6867bdb0e7ad7c2c959a97f6
- [fix] Patch: github.com https://github.com/digitalbazaar/forge/commit/862aa5f630bdf40b0dfda408d6ac357bf35a7d6b
- [fix] Release notes: github.com https://github.com/digitalbazaar/forge/releases/tag/v1.4.3

## From the sources

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.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
