Skip to content
Heist/ feed
Back to feed
MediumFix available

Hybrid Encapsulation from Seed Panics on Short Seed

Type: advisorySources: OSV

For a hybrid KEM public key of type `PublicKey::WingKemDraft06` or `PublicKey::X25519MlKem768Draft06`, the `PublicKey::encapsulate_derand` function would panic in an indexing operation on a seed input of length shorter than 32 bytes. # Impact Applications encapsulating with an attacker controlled seed value could be made to panic. Since the encapsulation seed should be considered a secret of the encapsulating party for the KEM to remain secure, an application should never take the seed value from a potentially attacker controlled source. # Mitigation With release of version `0.0.10` of `libcrux-kem` this bug has been fixed and the serialization functions return `InvalidPrivateKey` and `InvalidPublicKey` errors on invalid input buffer lengths. We recommend users upgrade to `libcrux-kem` version `0.0.10`.

Products
libcrux-kem
Affected versions
Not specified
Fixed versions
0.0.10
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
28 Oct 2026, 03:38 UTC · Revision 1

Source evidence

Hybrid Encapsulation from Seed Panics on Short Seed

core-osv · Original source

Published 28 Sept 2026, 12:00 UTC

For a hybrid KEM public key of type `PublicKey::WingKemDraft06` or `PublicKey::X25519MlKem768Draft06`, the `PublicKey::encapsulate_derand` function would panic in an indexing operation on a seed input of length shorter than 32 bytes. # Impact Applications encapsulating with an attacker controlled seed value could be made to panic. Since the encapsulation seed should be considered a secret of the encapsulating party for the KEM to remain secure, an application should never take the seed value from a potentially attacker controlled source. # Mitigation With release of version `0.0.10` of `libcrux-kem` this bug has been fixed and the serialization functions return `InvalidPrivateKey` and `InvalidPublicKey` errors on invalid input buffer lengths. We recommend users upgrade to `libcrux-kem` version `0.0.10`.

osv:RUSTSEC-2026-0330

libcrux-kem

Fixed versions: 0.0.10

Complete source record
{
  "id": "6c93f1af5a26ed6558ee84361b9cd4c3a6d18e08269b3c2c7d509ebfbdb8d9d3",
  "url": "https://osv.dev/vulnerability/RUSTSEC-2026-0330",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Hybrid Encapsulation from Seed Panics on Short Seed",
    "summary": "For a hybrid KEM public key of type `PublicKey::WingKemDraft06` or `PublicKey::X25519MlKem768Draft06`, the `PublicKey::encapsulate_derand` function would panic in an indexing operation on a seed input of length shorter than 32 bytes. # Impact Applications encapsulating with an attacker controlled seed value could be made to panic. Since the encapsulation seed should be considered a secret of the encapsulating party for the KEM to remain secure, an application should never take the seed value from a potentially attacker controlled source. # Mitigation With release of version `0.0.10` of `libcrux-kem` this bug has been fixed and the serialization functions return `InvalidPrivateKey` and `InvalidPublicKey` errors on invalid input buffer lengths. We recommend users upgrade to `libcrux-kem` version `0.0.10`.",
    "evidence": "osv:RUSTSEC-2026-0330",
    "products": [
      {
        "name": {
          "value": "libcrux-kem",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "0.0.10",
            "evidence": "/affected/0/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "RUSTSEC-2026-0330",
      "aliases": [
        "RUSTSEC-2026-0330"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "0.0.0-0"
                },
                {
                  "fixed": "0.0.10"
                }
              ]
            }
          ],
          "package": {
            "name": "libcrux-kem",
            "purl": "pkg:cargo/libcrux-kem",
            "ecosystem": "crates.io"
          },
          "database_specific": {
            "cvss": "CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
            "source": "https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0330.json",
            "categories": [],
            "informational": null
          },
          "ecosystem_specific": {
            "affects": {
              "os": [],
              "arch": [],
              "functions": [
                "libcrux_kem::PublicKey::encapsulate_derand"
              ]
            },
            "affected_functions": null
          }
        }
      ],
      "modified": "2026-10-07T08:30:02.862241231Z",
      "provider": "osv",
      "references": [
        "https://crates.io/crates/libcrux-kem",
        "https://rustsec.org/advisories/RUSTSEC-2026-0330.html",
        "https://github.com/celabshq/libcrux/pull/1595"
      ],
      "provider_metadata": {
        "license": "CC0-1.0"
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 94611,
  "published_at": "2026-09-28T12:00:00+00:00"
}