---
id: CVE-2026-33895
title: >-
  Forge (also called `node-forge`) is a native implementation of Transport Layer
  Security in JavaScript
summary: >-
  Forge (also called `node-forge`) is a native implementation of Transport Layer
  Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification
  accepts forged non-canonical signatures where the scalar S is not reduced
  modul…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N'
cwe:
  - CWE-347
  - CWE-347
vendor: digitalbazaar
product: forge
affected:
  - forge <= 1.3.3
published: '2026-03-27'
updated: '2026-07-02'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-33895'
references:
  - url: 'https://datatracker.ietf.org/doc/html/rfc8032#section-8.4'
    label: security-advisories@github.com
  - url: >-
      https://github.com/digitalbazaar/forge/commit/bdecf11571c9f1a487cc0fe72fe78ff6dfa96b85
    label: security-advisories@github.com
  - url: >-
      https://github.com/digitalbazaar/forge/security/advisories/GHSA-q67f-28xg-22rw
    label: security-advisories@github.com
  - url: 'https://access.redhat.com/errata/RHSA-2026:13826'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:24761'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:34342'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:9742'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/security/cve/CVE-2026-33895'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2452457'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: >-
      https://github.com/digitalbazaar/forge/security/advisories/GHSA-q67f-28xg-22rw
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33895.json
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
tags:
  - nvd
epss: 0.00543
epssPercentile: 0.44308
ingestedAt: '2026-07-02T12:34:40.395Z'
---

## Overview

Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (`S >= L`). A valid signature and its `S + L` variant both verify in forge, while Node.js `crypto.verify` (OpenSSL-backed) rejects the `S + L` variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.

## Affected

- `forge <= 1.3.3`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
