CVE-2026-22698

RustCrypto: Elliptic Curves is general purpose Elliptic Curve Cryptography (ECC) support, including types and traits for representing various elliptic curve forms, scalars, points, and public/secret keys composed thereof. In versions 0.14.0-pre.0 and 0.14.0-rc.0, a critical vulnerability exists in the SM2 Public Key Encryption (PKE) implementation where the ephemeral nonce k is generated with severely reduced entropy. A unit mismatch error causes the nonce generation function to request only 32 bits of randomness instead of the expected 256 bits. This reduces the security of the encryption from a 128-bit level to a trivial 16-bit level, allowing a practical attack to recover the nonce k and decrypt any ciphertext given only the public key and ciphertext. This issue has been patched via commit e4f7778.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:rustcrypto:sm2_elliptic_curve:0.14.0:pre0:*:*:*:rust:*:*
cpe:2.3:a:rustcrypto:sm2_elliptic_curve:0.14.0:rc0:*:*:*:rust:*:*

History

17 Jun 2026, 10:20

Type Values Removed Values Added
Summary
  • (es) RustCrypto: Curvas Elípticas es soporte de Criptografía de Curva Elíptica (ECC) de propósito general, incluyendo tipos y rasgos para representar varias formas de curvas elípticas, escalares, puntos y claves públicas/secretas compuestas de ellos. En las versiones 0.14.0-pre.0 y 0.14.0-rc.0, existe una vulnerabilidad crítica en la implementación de Cifrado de Clave Pública (PKE) SM2 donde el nonce efímero k se genera con una entropía severamente reducida. Un error de desajuste de unidades hace que la función de generación de nonce solicite solo 32 bits de aleatoriedad en lugar de los 256 bits esperados. Esto reduce la seguridad del cifrado de un nivel de 128 bits a un nivel trivial de 16 bits, permitiendo un ataque práctico para recuperar el nonce k y descifrar cualquier texto cifrado dado solo la clave pública y el texto cifrado. Este problema ha sido parcheado a través del commit e4f7778.

12 Mar 2026, 19:13

Type Values Removed Values Added
References () https://crates.io/crates/sm2/0.14.0-pre.0 - () https://crates.io/crates/sm2/0.14.0-pre.0 - Release Notes
References () https://crates.io/crates/sm2/0.14.0-rc.0 - () https://crates.io/crates/sm2/0.14.0-rc.0 - Release Notes
References () https://github.com/RustCrypto/elliptic-curves/commit/4781762f23ff22ab34763410f648128055c93731 - () https://github.com/RustCrypto/elliptic-curves/commit/4781762f23ff22ab34763410f648128055c93731 - Patch
References () https://github.com/RustCrypto/elliptic-curves/commit/e4f77788130d065d760e57fb109370827110a525 - () https://github.com/RustCrypto/elliptic-curves/commit/e4f77788130d065d760e57fb109370827110a525 - Patch
References () https://github.com/RustCrypto/elliptic-curves/pull/1600 - () https://github.com/RustCrypto/elliptic-curves/pull/1600 - Issue Tracking, Patch
References () https://github.com/RustCrypto/elliptic-curves/security/advisories/GHSA-w3g8-fp6j-wvqw - () https://github.com/RustCrypto/elliptic-curves/security/advisories/GHSA-w3g8-fp6j-wvqw - Exploit, Mitigation, Vendor Advisory
First Time Rustcrypto
Rustcrypto sm2 Elliptic Curve
CPE cpe:2.3:a:rustcrypto:sm2_elliptic_curve:0.14.0:rc0:*:*:*:rust:*:*
cpe:2.3:a:rustcrypto:sm2_elliptic_curve:0.14.0:pre0:*:*:*:rust:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.5

10 Jan 2026, 06:15

Type Values Removed Values Added
New CVE

Information

Published : 2026-01-10 06:15

Updated : 2026-06-17 10:20


NVD link : CVE-2026-22698

Mitre link : CVE-2026-22698

CVE.ORG link : CVE-2026-22698


JSON object : View

Products Affected

rustcrypto

  • sm2_elliptic_curve
CWE
CWE-331

Insufficient Entropy