CVE-2026-22699
Published: 10 January 2026
Summary
CVE-2026-22699 is a high-severity Improper Input Validation (CWE-20) vulnerability in Rustcrypto Sm2 Elliptic Curve. Its CVSS base score is 7.5 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Application or System Exploitation (T1499.004); ranked at the 34.8th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
The strongest mitigations our analysis identified are NIST 800-53 SI-10 (Information Input Validation) and SI-11 (Error Handling).
Deeper analysis
CVE-2026-22699 is a denial-of-service vulnerability in the RustCrypto elliptic-curves library, which provides general-purpose elliptic curve cryptography support including types and traits for elliptic curves, scalars, points, and keys. The issue affects versions 0.14.0-pre.0 and 0.14.0-rc.0 specifically in the SM2 PKE decryption path, where an invalid elliptic-curve point (C1) with syntactically valid but off-curve coordinates is decoded. The AffinePoint::from_encoded_point function may return None, but the calling code uses unwrap(), triggering a panic.
Attackers can exploit this remotely over a network with low complexity and no privileges or user interaction required, as indicated by the CVSS 3.1 score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H). By supplying crafted input to the SM2 decryption function, an unauthenticated remote attacker can cause the affected application to panic, resulting in denial of service through crashed processes or services.
The vulnerability has been patched in commit 085b7be, as detailed in the GitHub security advisory GHSA-78p6-6878-8mj6, pull request 1602, and the commit itself. Security practitioners should update to a patched version of the elliptic-curves crate beyond the affected pre-release versions to mitigate the issue.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2026-1875
Vulnerability details
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 denial-of-service vulnerability exists in the SM2…
more
PKE decryption path where an invalid elliptic-curve point (C1) is decoded and the resulting value is unwrapped without checking. Specifically, AffinePoint::from_encoded_point(&encoded_c1) may return a None/CtOption::None when the supplied coordinates are syntactically valid but do not lie on the SM2 curve. The calling code previously used .unwrap(), causing a panic when presented with such input. This issue has been patched via commit 085b7be.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Remote unauthenticated input triggers panic in crypto library, enabling application DoS via exploitation.
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Flaw remediation requires timely patching of the elliptic-curves library to the version fixing the unwrap panic in SM2 decryption, directly eliminating the DoS vulnerability.
Proper error handling prevents panics from invalid elliptic curve points by replacing unwrap with safe checks during SM2 PKE decryption.
Information input validation ensures encoded elliptic curve points (C1) are verified to lie on the SM2 curve before processing, blocking crafted invalid inputs.