CVE-2026-22698: SM2-PKE has 32-bit Biased Nonce Vulnerability
(updated )
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.
References
- crates.io/crates/sm2/0.14.0-pre.0
- crates.io/crates/sm2/0.14.0-rc.0
- github.com/RustCrypto/elliptic-curves
- github.com/RustCrypto/elliptic-curves/commit/4781762f23ff22ab34763410f648128055c93731
- github.com/RustCrypto/elliptic-curves/commit/e4f77788130d065d760e57fb109370827110a525
- github.com/RustCrypto/elliptic-curves/pull/1600
- github.com/RustCrypto/elliptic-curves/security/advisories/GHSA-w3g8-fp6j-wvqw
- github.com/advisories/GHSA-w3g8-fp6j-wvqw
- nvd.nist.gov/vuln/detail/CVE-2026-22698
Code Behaviors & Features
Detect and mitigate CVE-2026-22698 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →