CVE-2026-23967

Curveball: Breaking Signature Integrity in sm-crypto

Alon Barad
Alon Barad
Software Engineer

Jan 22, 2026·5 min read·4 visits

Executive Summary (TL;DR)

The `sm-crypto` library, a popular JavaScript implementation of Chinese cryptographic standards (SM2), failed to enforce strict boundary checks during signature verification. This allows attackers to mathematically transform a valid signature into a new, equally valid signature without the private key. While this doesn't leak keys, it wreaks havoc on systems relying on signature uniqueness, such as blockchain ledgers and audit logs.

A signature malleability vulnerability in the sm-crypto JavaScript library allows attackers to forge secondary valid signatures for the same message, potentially bypassing replay protections in cryptographic applications.

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
EPSS Probability
0.04%
Top 100% most exploited

Affected Systems

Node.js applications using sm-cryptoWeb applications (React/Vue) using sm-crypto for client-side signingWeChat Mini Programs using sm-cryptoFinancial systems implementing SM2 standards via JavaScript

Affected Versions Detail

Product
Affected Versions
Fixed Version
sm-crypto
JuneAndGreen
< 0.3.140.3.14
AttributeDetail
Vulnerability IDCVE-2026-23967
CWE IDCWE-347
CVSS7.5 (High)
Attack VectorNetwork
ImpactIntegrity (Signature Forgery)
Exploit StatusPoc Available (Theoretical)
CWE-347
Improper Verification of Cryptographic Signature

The product does not verify or incorrectly verifies the cryptographic signature for data, allowing an attacker to spoof the signature or modify the data without detection.

Vulnerability Timeline

Vulnerability Disclosed by XlabAI
2026-01-21
CVE-2026-23967 Assigned
2026-01-22
Patch Released in v0.3.14
2026-01-26

Subscribe to updates

Get the latest CVE analysis reports delivered to your inbox.