CVE-2026-22699

Source
https://cve.org/CVERecord?id=CVE-2026-22699
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22699.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-22699
Aliases
Published
2026-01-10T05:17:22.818Z
Modified
2026-07-08T08:09:13.791630162Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
RustCrypto SM2-PKE has Unchecked AffinePoint Decoding (unwrap) in decrypt()
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 PKE decryption path where an invalid elliptic-curve point (C1) is decoded and the resulting value is unwrapped without checking. Specifically, AffinePoint::fromencodedpoint(&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.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-20"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22699.json"
}
References

Affected packages

Git / github.com/rustcrypto/elliptic-curves

Affected ranges

Type
GIT
Repo
https://github.com/rustcrypto/elliptic-curves
Events
Database specific
{
    "source": [
        "CPE_STRING",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "0.14.0-pre0"
        },
        {
            "last_affected": "0.14.0-pre0"
        }
    ],
    "cpe": "cpe:2.3:a:rustcrypto:sm2_elliptic_curve:0.14.0:pre0:*:*:*:rust:*:*"
}

Affected versions

0.*
0.14.0-pre0
= 0.*
= 0.14.0-pre.0
= 0.14.0-rc.0
bignp256/v0.*
bignp256/v0.14.0-pre.0
bignp256/v0.14.0-rc.0
bignp256/v0.14.0-rc.1
bignp256/v0.14.0-rc.2
bignp256/v0.14.0-rc.3
bignp256/v0.14.0-rc.4
bp256/v0.*
bp256/v0.14.0-pre.0
bp256/v0.14.0-rc.0
bp256/v0.14.0-rc.1
bp256/v0.14.0-rc.2
bp256/v0.14.0-rc.3
bp256/v0.14.0-rc.4
bp384/v0.*
bp384/v0.14.0-pre.0
bp384/v0.14.0-rc.0
bp384/v0.14.0-rc.1
bp384/v0.14.0-rc.2
bp384/v0.14.0-rc.3
bp384/v0.14.0-rc.4
ed448-goldilocks/v0.*
ed448-goldilocks/v0.14.0-pre.0
ed448-goldilocks/v0.14.0-pre.1
ed448-goldilocks/v0.14.0-pre.2
ed448-goldilocks/v0.14.0-pre.3
ed448-goldilocks/v0.14.0-pre.4
ed448-goldilocks/v0.14.0-pre.5
ed448-goldilocks/v0.14.0-pre.6
ed448-goldilocks/v0.14.0-pre.7
hash2curve/v0.*
hash2curve/v0.14.0-rc.0
hash2curve/v0.14.0-rc.1
hash2curve/v0.14.0-rc.2
hash2curve/v0.14.0-rc.3
hash2curve/v0.14.0-rc.4
hash2curve/v0.14.0-rc.5
hash2curve/v0.14.0-rc.6
hash2curve/v0.14.0-rc.7
k256/v0.*
k256/v0.14.0-pre.1
k256/v0.14.0-pre.10
k256/v0.14.0-pre.11
k256/v0.14.0-pre.2
k256/v0.14.0-pre.3
k256/v0.14.0-pre.4
k256/v0.14.0-pre.5
k256/v0.14.0-pre.6
k256/v0.14.0-pre.7
k256/v0.14.0-pre.8
k256/v0.14.0-pre.9
k256/v0.14.0-rc.0
k256/v0.14.0-rc.1
k256/v0.14.0-rc.2
k256/v0.14.0-rc.3
k256/v0.14.0-rc.4
p192/v0.*
p192/v0.14.0-rc.0
p192/v0.14.0-rc.1
p192/v0.14.0-rc.2
p192/v0.14.0-rc.3
p192/v0.14.0-rc.4
p224/v0.*
p224/v0.14.0-rc.0
p224/v0.14.0-rc.1
p224/v0.14.0-rc.2
p224/v0.14.0-rc.3
p224/v0.14.0-rc.4
p256/v0.*
p256/v0.14.0-pre.1
p256/v0.14.0-pre.10
p256/v0.14.0-pre.11
p256/v0.14.0-pre.2
p256/v0.14.0-pre.3
p256/v0.14.0-pre.4
p256/v0.14.0-pre.5
p256/v0.14.0-pre.6
p256/v0.14.0-pre.7
p256/v0.14.0-pre.8
p256/v0.14.0-pre.9
p256/v0.14.0-rc.0
p256/v0.14.0-rc.1
p256/v0.14.0-rc.2
p256/v0.14.0-rc.3
p256/v0.14.0-rc.4
p384/v0.*
p384/v0.14.0-pre.1
p384/v0.14.0-pre.10
p384/v0.14.0-pre.11
p384/v0.14.0-pre.2
p384/v0.14.0-pre.3
p384/v0.14.0-pre.4
p384/v0.14.0-pre.5
p384/v0.14.0-pre.6
p384/v0.14.0-pre.7
p384/v0.14.0-pre.8
p384/v0.14.0-pre.9
p384/v0.14.0-rc.0
p384/v0.14.0-rc.1
p384/v0.14.0-rc.2
p384/v0.14.0-rc.3
p384/v0.14.0-rc.4
p521/v0.*
p521/v0.14.0-pre.1
p521/v0.14.0-pre.10
p521/v0.14.0-pre.11
p521/v0.14.0-pre.2
p521/v0.14.0-pre.3
p521/v0.14.0-pre.4
p521/v0.14.0-pre.5
p521/v0.14.0-pre.6
p521/v0.14.0-pre.7
p521/v0.14.0-pre.8
p521/v0.14.0-pre.9
p521/v0.14.0-rc.0
p521/v0.14.0-rc.1
p521/v0.14.0-rc.2
p521/v0.14.0-rc.3
p521/v0.14.0-rc.4
primefield/v0.*
primefield/v0.14.0-pre.0
primefield/v0.14.0-pre.1
primefield/v0.14.0-pre.2
primefield/v0.14.0-pre.3
primefield/v0.14.0-pre.4
primefield/v0.14.0-pre.5
primefield/v0.14.0-pre.6
primefield/v0.14.0-rc.0
primefield/v0.14.0-rc.1
primefield/v0.14.0-rc.2
primefield/v0.14.0-rc.3
primefield/v0.14.0-rc.4
primeorder/v0.*
primeorder/v0.14.0-pre.1
primeorder/v0.14.0-pre.2
primeorder/v0.14.0-pre.3
primeorder/v0.14.0-pre.4
primeorder/v0.14.0-pre.5
primeorder/v0.14.0-pre.6
primeorder/v0.14.0-pre.7
primeorder/v0.14.0-pre.8
primeorder/v0.14.0-pre.9
primeorder/v0.14.0-rc.0
primeorder/v0.14.0-rc.1
primeorder/v0.14.0-rc.2
primeorder/v0.14.0-rc.3
primeorder/v0.14.0-rc.4
sm2/v0.*
sm2/v0.14.0-pre.0
sm2/v0.14.0-rc.0
sm2/v0.14.0-rc.1
sm2/v0.14.0-rc.2
sm2/v0.14.0-rc.3
sm2/v0.14.0-rc.4
x448/v0.*
x448/v0.14.0-pre.0
x448/v0.14.0-pre.1
x448/v0.14.0-pre.2
x448/v0.14.0-pre.3
x448/v0.14.0-pre.4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22699.json"