---
title: "CVE-2026-73567: sm-crypto: Predictable SM2 key generation in Node.js: default RNG uses Math.random + wall clock"
url: https://erroneo.us/security/cve/CVE-2026-73567/
description: "CVE-2026-73567 (sm-crypto (npm)): sm-crypto provides JavaScript implementations of the Chinese cryptographic algorithms SM2, SM3, and SM4. Prior to 0.5.0…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-08-13
date_modified: 2026-08-14
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-73567"
kev: false
cvss: 9.1
epss: 0.00444
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-73567: sm-crypto: Predictable SM2 key generation in Node.js: default RNG uses Math.random + wall clock

**Signal:** Critical and remotely reachable. No known exploitation yet, but it is network-reachable without credentials. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
- EPSS 0.4% , percentile 37: FIRST’s model estimates a 0.4% chance of exploitation activity in the next 30 days, higher than 37% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
- Only applies if your dependency tree includes sm-crypto (npm) < 0.5.0, fixed in 0.5.0 . Check your lockfile, including transitive dependencies.

## What it is

sm-crypto provides JavaScript implementations of the Chinese cryptographic algorithms SM2, SM3, and SM4. Prior to 0.5.0, the default no-argument sm2.generateKeyPairHex() path in Node.js uses the module-wide SecureRandom instance in src/sm2/utils.js, supplied by jsbn@1.1.0, which seeds an ARC4 stream from Math.random() and new Date().getTime() because window.crypto.getRandomValues is unavailable even though globalThis.crypto exists. An attacker who can observe the process's Math.random() outputs and estimate the key-generation time can reconstruct the seed, recover generated SM2 private keys, and predict signing ephemeral scalars used to forge signatures. This issue is fixed in version 0.5.0.

## Affected packages

- npm `sm-crypto` < 0.5.0 → fixed: 0.5.0

## Affected products (CVE record)

- JuneAndGreen sm-crypto: < 0.5.0

## Severity

- GitHub_M CVSS 3.1: 9.1 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N`
- GitHub CVSS 3.1: 9.1 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation none , automatable yes , technical impact total .
- FIRST EPSS (model of 2026-10-21): 0.44% probability of exploitation activity in the next 30 days; percentile 37.

## Sources

- [GitHub Advisory GHSA-vh45-f885-3848](https://github.com/advisories/GHSA-vh45-f885-3848)
- [CVE.org record CVE-2026-73567](https://www.cve.org/CVERecord?id=CVE-2026-73567)
- [NVD entry CVE-2026-73567](https://nvd.nist.gov/vuln/detail/CVE-2026-73567)
- [github.com](https://github.com/JuneAndGreen/sm-crypto/security/advisories/GHSA-vh45-f885-3848)
- [github.com](https://github.com/JuneAndGreen/sm-crypto/commit/1f9bd7bd160c24efd9c26c8f7fda997c68c823d0)

---
Source page: https://erroneo.us/security/cve/CVE-2026-73567/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
