Forge: Certificate signature verified with the issuer's RSA signature scheme
Impact
Forge, a JavaScript TLS implementation, had a weakness in certificate signature verification prior to version 1.4.1. It used the issuer's RSA signature scheme, allowing a child certificate to be accepted with a PKCS#1 v1.5 signature if the issuer used it. This could bypass policies requiring a declared signature scheme.
Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.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.
Affected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
digitalbazaar · GitHub_M
forge
1 range
digitalbazaar · GitHub_M
forge
Compare with this publisher’s ranges. This does not inspect your installation.
affected
< 1.4.1
Other versions: unknown
Original source description
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.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-118774View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Contributing organizations · 1
Assigning organization
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.