CVE-2026-118774: Forge: Certificate signature verified with the issuer's RSA signature scheme
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used certificate.verify(child), verifySignature(), lib/x509.js to process the relevant input or security decision. node-forge selected RSA padding and RSASSA-PSS parameters from the issuer certificate rather than the child certificate being verified. A child labeled as RSASSA-PSS could therefore be accepted with a PKCS#1 v1.5 signature when the issuer used PKCS#1 v1.5. The signature still had to be produced with the trusted issuer's private key, so this did not permit certificate identity forgery, but it could bypass policies that require a declared signature scheme. This issue is fixed in version 1.4.1.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
node-forgeto a version that resolves this vulnerability.Fixed in 1.4.1
Event History
Frequently Asked Questions
Who is realistically exposed to this issue?
Applications using Forge or node-forge before version 1.4.1 to verify certificate signatures are affected. The practical impact is limited to environments that enforce policies based on the certificate's declared RSA signature scheme.
What does an attacker need to exploit the issue?
A valid signature produced with the trusted issuer's private key is still required. This does not enable an attacker to forge a certificate identity without access to that private key.
Are default certificate-validation deployments affected in a way that permits identity forgery?
No. Although an RSASSA-PSS-labeled child certificate could be accepted with a PKCS#1 v1.5 signature under the described issuer conditions, the trusted issuer's private key is still needed, so certificate identity forgery is not permitted.
What should teams do if they require declared signature-scheme enforcement?
Upgrade Forge to version 1.4.1, which fixes the signature-scheme and RSASSA-PSS parameter selection behavior. Until then, do not rely on the affected verification path alone to enforce a child certificate's declared signature scheme.