UBUNTU-CVE-2026-125336: Medium severity ubuntu/node-node-forge vulnerability
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
node-forgeto a version that resolves this vulnerability.Fixed in 1.4.3
Event History
Frequently Asked Questions
Which certificate chains are affected?
Only chains containing a name-constrained CA with a non-critical nameConstraints extension are affected. Chains without nameConstraints are not affected, and certificates with critical nameConstraints are rejected as unsupported by affected versions.
What would an attacker need to exploit this issue?
An attacker needs a name-constrained CA that chains to a trusted root, plus either that CA's private key or the ability to obtain an out-of-scope certificate from it. They could then use a certificate for a name outside the permitted subtree or within an excluded subtree to impersonate that name.
Are forge.tls clients exposed?
Yes. Affected node-forge versions can accept an improperly scoped certificate chain during validation, including when used by forge.tls clients.
What version fixes the issue?
The issue is fixed in node-forge version 1.4.3.