Impact
RustCrypto’s Elliptic Curves library contains a flaw in the SM2 PKE decryption routine. During decryption, an incoming ciphertext section (C1) is decoded into an elliptic‑curve point without validating that the resulting point lies on the SM2 curve. The library’s code calls `.unwrap()` on the result, which triggers a panic whenever the encoded point is syntactically valid but not on‑curve. This bug is a classic input validation failure (CWE‑20) that can cause a denial‑of‑service condition, as the panic brings the entire application to a halt. The vulnerability exists only in the 0.14.0‑pre.0 and 0.14.0‑rc.0 releases and has been addressed in a later commit.
Affected Systems
Any software that depends on RustCrypto’s ellipic‑curves crate at a pre‑release version of 0.14.0 (both pre‑0.0 and rc.0) is affected. This includes applications that use the SM2 PKE implementation from that crate. Downgrading is not recommended; upgrading to the latest stable release that incorporates commit 085b7be removes the risk.
Risk and Exploitability
With a CVSS score of 7.5 the flaw is considered high severity, but the EPSS score is below 1 % indicating the likelihood of exploitation is low at present. Because the vulnerability manifests when a malformed ciphertext is processed, an attacker could trigger a crash by sending crafted SM2 messages to a service that relies on the vulnerable crate. The KEV catalogue does not list this issue yet, implying no widespread active exploitation has been reported. Nonetheless, the risk remains real for services that expose SM2 decryption without proper input validation.
OpenCVE Enrichment
Github GHSA