Skip to content
Heist/ feed
Back to feed
High

RustCrypto Has Insufficient Length Validation in decrypt() in SM2-PKE

Type: advisorySources: OSV

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 public-key encryption (PKE) implementation: the decrypt() path performs unchecked slice::split_at operations on input buffers derived from untrusted ciphertext. An attacker can submit short/undersized ciphertext or carefully-crafted DER-encoded structures to trigger bounds-check panics (Rust unwinding) which crash the calling thread or process. This issue has been patched via commit e60e991.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-22700
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 02:43 UTC · Revision 1

Source evidence

RustCrypto Has Insufficient Length Validation in decrypt() in SM2-PKE

core-osv · Original source

Published 10 Jan 2026, 05:17 UTC

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 public-key encryption (PKE) implementation: the decrypt() path performs unchecked slice::split_at operations on input buffers derived from untrusted ciphertext. An attacker can submit short/undersized ciphertext or carefully-crafted DER-encoded structures to trigger bounds-check panics (Rust unwinding) which crash the calling thread or process. This issue has been patched via commit e60e991.

osv:CVE-2026-22700
Complete source record
{
  "id": "dcc4c97be723633b2fa27bc151eb37785520fb68e945d35f0b79879ec3fa6fb9",
  "url": "https://osv.dev/vulnerability/CVE-2026-22700",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "RustCrypto Has Insufficient Length Validation in decrypt() in SM2-PKE",
    "summary": "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 public-key encryption (PKE) implementation: the decrypt() path performs unchecked slice::split_at operations on input buffers derived from untrusted ciphertext. An attacker can submit short/undersized ciphertext or carefully-crafted DER-encoded structures to trigger bounds-check panics (Rust unwinding) which crash the calling thread or process. This issue has been patched via commit e60e991.",
    "evidence": "osv:CVE-2026-22700",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-22700",
      "aliases": [
        "CVE-2026-22700",
        "GHSA-j9xq-69pf-pcm8"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/rustcrypto/elliptic-curves",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0faafbd690475c4cc5cce14c9566c920a6d4ea8e"
                },
                {
                  "fixed": "e60e99167a9a2b187ebe80c994c5204b0fdaf4ab"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "= 0.14.0-pre.0"
                      },
                      {
                        "last_affected": "= 0.14.0-pre.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandaloneSingleVersion"
                  },
                  {
                    "range": [
                      {
                        "introduced": "= 0.14.0-rc.0"
                      },
                      {
                        "last_affected": "= 0.14.0-rc.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandaloneSingleVersion"
                  },
                  {
                    "range": [
                      {
                        "fixed": "e60e99167a9a2b187ebe80c994c5204b0fdaf4ab"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "0.14.0-pre0",
            "= 0.14.0-pre.0",
            "= 0.14.0-rc.0",
            "x448/v0.14.0-pre.4",
            "sm2/v0.14.0-rc.4",
            "primeorder/v0.14.0-rc.4",
            "primefield/v0.14.0-rc.4",
            "p521/v0.14.0-rc.4",
            "p384/v0.14.0-rc.4",
            "p256/v0.14.0-rc.4",
            "p224/v0.14.0-rc.4",
            "p192/v0.14.0-rc.4",
            "k256/v0.14.0-rc.4",
            "hash2curve/v0.14.0-rc.7",
            "ed448-goldilocks/v0.14.0-pre.7",
            "bp384/v0.14.0-rc.4",
            "bp256/v0.14.0-rc.4",
            "bignp256/v0.14.0-rc.4",
            "x448/v0.14.0-pre.3",
            "sm2/v0.14.0-rc.3",
            "primeorder/v0.14.0-rc.3",
            "primefield/v0.14.0-rc.3",
            "p521/v0.14.0-rc.3",
            "p384/v0.14.0-rc.3",
            "p256/v0.14.0-rc.3",
            "p224/v0.14.0-rc.3",
            "p192/v0.14.0-rc.3",
            "k256/v0.14.0-rc.3",
            "hash2curve/v0.14.0-rc.6",
            "ed448-goldilocks/v0.14.0-pre.6",
            "bp384/v0.14.0-rc.3",
            "bp256/v0.14.0-rc.3",
            "bignp256/v0.14.0-rc.3",
            "x448/v0.14.0-pre.2",
            "sm2/v0.14.0-rc.2",
            "primeorder/v0.14.0-rc.2",
            "primefield/v0.14.0-rc.2",
            "p521/v0.14.0-rc.2",
            "p384/v0.14.0-rc.2",
            "p256/v0.14.0-rc.2",
            "p224/v0.14.0-rc.2",
            "p192/v0.14.0-rc.2",
            "k256/v0.14.0-rc.2",
            "hash2curve/v0.14.0-rc.5",
            "ed448-goldilocks/v0.14.0-pre.5",
            "bp384/v0.14.0-rc.2",
            "bp256/v0.14.0-rc.2",
            "bignp256/v0.14.0-rc.2",
            "sm2/v0.14.0-rc.1",
            "primeorder/v0.14.0-rc.1",
            "primefield/v0.14.0-rc.1",
            "p521/v0.14.0-rc.1",
            "p384/v0.14.0-rc.1",
            "p256/v0.14.0-rc.1",
            "p224/v0.14.0-rc.1",
            "p192/v0.14.0-rc.1",
            "k256/v0.14.0-rc.1",
            "bp384/v0.14.0-rc.1",
            "bp256/v0.14.0-rc.1",
            "bignp256/v0.14.0-rc.1",
            "hash2curve/v0.14.0-rc.4",
            "sm2/v0.14.0-rc.0",
            "bignp256/v0.14.0-rc.0",
            "p521/v0.14.0-rc.0",
            "p384/v0.14.0-rc.0",
            "p256/v0.14.0-rc.0",
            "p224/v0.14.0-rc.0",
            "p192/v0.14.0-rc.0",
            "k256/v0.14.0-rc.0",
            "bp384/v0.14.0-rc.0",
            "bp256/v0.14.0-rc.0",
            "primeorder/v0.14.0-rc.0",
            "hash2curve/v0.14.0-rc.3",
            "primefield/v0.14.0-rc.0",
            "bignp256/v0.14.0-pre.0",
            "x448/v0.14.0-pre.1",
            "sm2/v0.14.0-pre.0",
            "p521/v0.14.0-pre.11",
            "p384/v0.14.0-pre.11",
            "p256/v0.14.0-pre.11",
            "k256/v0.14.0-pre.11",
            "ed448-goldilocks/v0.14.0-pre.4",
            "hash2curve/v0.14.0-rc.2",
            "primeorder/v0.14.0-pre.9",
            "primefield/v0.14.0-pre.6",
            "x448/v0.14.0-pre.0",
            "p521/v0.14.0-pre.10",
            "p384/v0.14.0-pre.10",
            "p256/v0.14.0-pre.10",
            "k256/v0.14.0-pre.10",
            "hash2curve/v0.14.0-rc.1",
            "ed448-goldilocks/v0.14.0-pre.3",
            "bp384/v0.14.0-pre.0",
            "bp256/v0.14.0-pre.0",
            "primeorder/v0.14.0-pre.8",
            "primefield/v0.14.0-pre.5",
            "ed448-goldilocks/v0.14.0-pre.2",
            "primeorder/v0.14.0-pre.7",
            "primefield/v0.14.0-pre.4",
            "p521/v0.14.0-pre.9",
            "p384/v0.14.0-pre.9",
            "p256/v0.14.0-pre.9",
            "k256/v0.14.0-pre.9",
            "hash2curve/v0.14.0-rc.0",
            "p521/v0.14.0-pre.8",
            "p384/v0.14.0-pre.8",
            "p256/v0.14.0-pre.8",
            "k256/v0.14.0-pre.8",
            "primeorder/v0.14.0-pre.6",
            "primefield/v0.14.0-pre.3",
            "p521/v0.14.0-pre.7",
            "p384/v0.14.0-pre.7",
            "p256/v0.14.0-pre.7",
            "k256/v0.14.0-pre.7",
            "primeorder/v0.14.0-pre.5",
            "p521/v0.14.0-pre.6",
            "p384/v0.14.0-pre.6",
            "p256/v0.14.0-pre.6",
            "k256/v0.14.0-pre.6",
            "ed448-goldilocks/v0.14.0-pre.1",
            "ed448-goldilocks/v0.14.0-pre.0",
            "primeorder/v0.14.0-pre.4",
            "p521/v0.14.0-pre.5",
            "p384/v0.14.0-pre.5",
            "p256/v0.14.0-pre.5",
            "k256/v0.14.0-pre.5",
            "primefield/v0.14.0-pre.2",
            "p521/v0.14.0-pre.4",
            "p384/v0.14.0-pre.4",
            "p256/v0.14.0-pre.4",
            "k256/v0.14.0-pre.4",
            "p521/v0.14.0-pre.3",
            "p384/v0.14.0-pre.3",
            "p256/v0.14.0-pre.3",
            "k256/v0.14.0-pre.3",
            "primeorder/v0.14.0-pre.3",
            "primefield/v0.14.0-pre.1",
            "k256/v0.14.0-pre.2",
            "primeorder/v0.14.0-pre.2",
            "p521/v0.14.0-pre.2",
            "p384/v0.14.0-pre.2",
            "p256/v0.14.0-pre.2",
            "k256/v0.14.0-pre.1",
            "primeorder/v0.14.0-pre.1",
            "p521/v0.14.0-pre.1",
            "p384/v0.14.0-pre.1",
            "p256/v0.14.0-pre.1",
            "primefield/v0.14.0-pre.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22700.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.129093562Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22700.json",
        "https://github.com/RustCrypto/elliptic-curves/security/advisories/GHSA-j9xq-69pf-pcm8",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-22700",
        "https://github.com/RustCrypto/elliptic-curves/commit/e60e99167a9a2b187ebe80c994c5204b0fdaf4ab",
        "https://github.com/RustCrypto/elliptic-curves/pull/1603"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-20"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22700.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-22700",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517459,
  "published_at": "2026-01-10T05:17:25.583+00:00"
}