Executive brief
Forge (node-forge) is a widely used JavaScript library for implementing security protocols like TLS and digital signatures. A flaw in its signature verification process allows attackers to create multiple valid-looking signatures for the same data. This can be used to bypass security checks in applications that rely on unique signatures to prevent replay attacks or to verify the identity of users and systems.
Technical details
The Forge library (node-forge) prior to version 1.4.0 fails to properly validate Ed25519 signatures according to RFC 8032 specifications. Specifically, the verification logic does not check if the scalar S is reduced modulo the group order L (S < L). This allows for signature malleability, where an attacker can take a valid signature and produce a different but still 'valid' variant (S + L). This vulnerability can be exploited to bypass deduplication logic, replay tracking, or authentication systems that assume signature uniqueness. The issue is resolved in version 1.4.0 by adding the necessary canonicality checks.
Affected products
- Digital Bazaar forge < 1.4.0
Timeline
- 2026-03-20: other: Initial patch authored
- 2026-03-24: patched: Patch committed to repository
- 2026-03-27: disclosed: CVE published
References
- https://datatracker.ietf.org/doc/html/rfc8032
- https://github.com/digitalbazaar/forge/commit/bdecf11571c9f1a487cc0fe72fe78ff6dfa96b85
- https://github.com/digitalbazaar/forge/security/advisories/GHSA-q67f-28xg-22rw
- https://access.redhat.com/errata/RHSA-2026:13826
- https://access.redhat.com/errata/RHSA-2026:24761
- https://access.redhat.com/errata/RHSA-2026:9742
- https://access.redhat.com/security/cve/CVE-2026-33895