Security fix · CVE-2026-118780
Forge: verifyCertificateChain() removes trusted CA certificates with the same subject from the CA store
Published Oct 30, 2026 · catalog updated Oct 30, 2026 · Forge: verifyCertificateChain() removes trusted
Last checked Nov 6, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-118780. EPSS is 0.17%. Act only if a listed version of Forge: verifyCertificateChain() removes trusted is installed.
Gaps on this record
- The stored product name is a package slug. The name on this page is taken from the title (Forge: verifyCertificateChain() removes trusted).
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
- Severity
- Low3.7
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.17%
- Remediation
- Version ranges on file
- Affected products
- npm node-forge
### Summary When a CA store created by holds two or more certificates with the same subject name, permanently removes those certificates from the store while trying each one as the issuer. A peer can send any certificate that names that subject as its issuer to make all later verifications against those CA certificates fail. Fixed in node-forge 1.4.1. ### Details ( ) asks the CA store for the issuer of each certificate with . When the store holds several certificates with the same subject, returns the store's own internal array of those certificates ( , built by ). used that array directly as its list of candidate parents and called on it while trying each candidate. Every candidate it tried, including the one that finally verified the certificate, was removed from the store. Once the array is empty, returns an empty list, no candidate is tried, and verification fails with "Certificate signature is invalid." and no longer see the removed certificates. The store stays in this state for as long as the object is used. The attacker's certificate only needs an issuer name equal to the shared subject name, which is public. Its signature and key can be arbitrary: every candidate is tried and shifted out because none verifies, and errors from are caught by the loop. Verification of the attacker's chain fails as expected. Verifying valid chains has a similar effect: the CA certificate that verified the chain and any tried before it are removed. No chain is accepted that should be rejected. Removing candidates can only turn a success into a failure. RFC 5280, Section 6.1.1(d) treats trust anchor information as an input to path validation. Validation should not consume it. The fix copies the array returned by before iterating over it, so the CA store is no longer modified. itself is unchanged. ### Patches Fixed in node-forge 1.4.1. now works on a copy of the candidate issuer list instead of shifting entries out of the CA store. ### Workarounds - Pass a fresh CA store to each c
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- npm node-forge<= 1.4.0
How to fix CVE-2026-118780
Upgrade
CVE-2026-118780 lists a fix boundary at 1.4.0. Compare the installed build with that boundary before you change production.
Version check
Affected <= 1.4.0
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-118780. EPSS is 0.17%. Act only if a listed version of Forge: verifyCertificateChain() removes trusted is installed.
Which versions are affected?
Compare what you have installed with <= 1.4.0. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-295: Improper Certificate Validation; CWE-471. EPSS 0.17%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 30, 2026 · GitHub Advisory Database
Detected
### Summary When a CA store created by holds two or more certificates with the same subject name, permanently removes those certificates from the store while trying each one as the issuer. A peer can send any certificate that names that subject as its issuer to make all later verifications against those CA certificates fail. Fixed in node-forge 1.4.1. ### Details ( ) asks the CA store for the issu
Oct 30, 2026 · GitHub Advisory Database
Updated
### Summary When a CA store created by holds two or more certificates with the same subject name, permanently removes those certificates from the store while trying each one as the issuer. A peer can send any certificate that names that subject as its issuer to make all later verifications against those CA certificates fail. Fixed in node-forge 1.4.1. ### Details ( ) asks the CA store for the issu
Sources
- CVE.orgVulnerability recordCVE-2026-118780
Official CVE identifier
cve.org - GitHub Advisory DatabasePackage advisoryGHSA-4487-j8r4-4g2f
Forge: verifyCertificateChain() removes trusted CA certificates with the same subject from the CA store
github.com - GitLab Advisory DatabasePackage advisoryCVE-2026-118780
When a CA store created by pki.createCaStore() holds two or more certificates with the same subject name, pki.verifyCertificateChain() permanently removes those certificates from the store while trying each one as the issuer. A peer can send any certificate that names that subject as its issuer to make all later verifications against those CA certificates fail. Fixed in node-forge 1.4.1.
advisories.gitlab.com
References
Freshness
Last verified in this catalog Nov 6, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- GitHub Advisory DatabaseNov 6, 2026
- GitLab Advisory DatabaseNov 3, 2026
- CVE.orgOct 31, 2026