---
id: "CVE-2026-129319"
page: "https://infrastack.ai/live/CVE-2026-129319"
kind: "vulnerability"
aliases: ["CVE-2026-129319"]
title: "create-ecdh: browser ECDH skips key validation, leaking private keys"
severity: "high"
cvss: 8.2
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "create-ecdh", "fixed": [], "affected": "", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["browser", "crypto", "javascript", "npm", "package"]
not_affected_if: ["native-node-crypto", "no-static-keys", "no-untrusted-peers"]
published_at: "2026-11-14T07:17:21+00:00"
first_seen_at: "2026-11-14T07:27:46+00:00"
updated_at: "2026-11-14T07:28:08+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-129319", "first_seen_at": "2026-11-14T07:27:46+00:00"}]
exploit_sources: []
---

# create-ecdh: browser ECDH skips key validation, leaking private keys

Link for people: https://infrastack.ai/live/CVE-2026-129319 (this .md is for agents)

create-ecdh's JavaScript fallback for Diffie-Hellman key exchange does not check peer public keys before using them. An attacker who can send keys to a party reusing a static private key can recover that key over repeated attempts, or force a predictable shared secret on ed25519 and curve25519.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- npm:create-ecdh affected range not listed fixed no fixed version listed

## How to check

- Check the installed version with `npm ls create-ecdh`; versions `4.0.4` and below are affected.
- Find bundles or servers that use create-ecdh in the browser or on Node.js without a working native crypto.createECDH.
- Native crypto.createECDH on modern Node.js is not affected.

## Fix

- create-ecdh: move to `4.0.5`.

## Timeline

- 2026-11-14T07:27:46+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-129319

## Documents

- [advisory] Vendor advisory: github.com https://github.com/browserify/createECDH/security/advisories/GHSA-32q7-f779-hw5r
- [fix] Patch: github.com https://github.com/browserify/createECDH/commit/1cfaf332773237e5fea4b51a2ad3efab4c22bec1

## From the sources

create-ecdh is a browserifiable implementation of Node.js crypto.createECDH. In versions 4.0.4 and below, the JavaScript implementation (browser.js, used by browser bundlers and on Node.js versions without a working native crypto.createECDH) did not validate peer public keys in ECDH.prototype.computeSecret or ECDH.prototype.setPublicKey. The peer point was multiplied by the local private key without checking that it was on the configured curve or in its prime-order subgroup. An attacker who can submit public keys to a party that reuses a static private key can perform an invalid-curve or small-subgroup attack and recover the private key modulo small factors, eventually recovering the full key via the Chinese Remainder Theorem. For the ed25519 and curve25519 curves, low-order points were also accepted, which could force a predictable shared secret. On modern Node.js, create-ecdh re-exports the native implementation, which is not affected. This issue is fixed in version 4.0.5.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
