Description
In `github.com/eclipse-keypont/crypto11/v2` versions `>= 2.0.0-rc3, <= 2.0.0-rc8`, the ML-KEM key-pair lookup functions (`FindMLKEMKeyPair`, `FindMLKEMKeyPairs`, `FindMLKEMKeyPairsWithAttributes`) locate the public half of an ML-KEM key pair by `CKA_ID`/`CKA_LABEL` and never verify it against the private key. In addition, the "ID only" fallback search runs even when the private key has no `CKA_ID`, so the search template reduces to the public-key class and the ML-KEM key type and the first ML-KEM public key on the token is returned. `Encapsulate()` on the resulting key pair encrypts the fresh shared secret to that key, so its owner — not the holder of the private key the caller looked up — can recover the secret. An attacker who can open an unauthenticated session on the token and plant a public `CKK_ML_KEM` object carrying the victim's `CKA_ID`/`CKA_LABEL` receives the shared secrets for encapsulations performed through the substituted key pair, compromising the confidentiality of those secrets and of everything protected by keys derived from them. The v1 module paths have no ML-KEM support and are not affected.
Published: 2026-10-27
Score: 5.5 Medium
EPSS: n/a
KEV: No
Impact: Confidentiality loss of encapsulated secrets
Action: Patch
AI Analysis

Impact

In Eclipse KeyPont library versions 2.0.0‑rc3 through 2.0.0‑rc8, the ML‑KEM key‑pair lookup functions locate a public key by CKA_ID or CKA_LABEL but do not confirm it is paired with the corresponding private key. When the private key lacks an ID, the lookup falls back to a template that matches only the public‑key class and the ML‑KEM type, causing the first ML‑KEM public key on the token to be returned. Encapsulate operations on the mistakenly returned key encrypt a fresh shared secret to that key, allowing the holder of the planted public key to recover the secret. An attacker who can open an unauthenticated session on the token and implant a public CKK_ML_KEM object with a victim’s ID or label can obtain all shared secrets encapsulated through the substituted key pair, compromising confidentiality of those secrets and any data derived from them.

Affected Systems

The vulnerability affects the Eclipse KeyPont product from the Eclipse Foundation. Affected releases are the 2.x series, specifically any version from 2.0.0‑rc3 up to and including 2.0.0‑rc8. The 1.x series, which has no ML‑KEM support, is not impacted.

Risk and Exploitability

The CVSS score is 5.5, indicating a moderate severity. No EPSS score is available, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector requires an unauthenticated session capable of creating or modifying public key objects on the token; an attacker must therefore have some level of 0‑day or privileged access to the appliance or the token handling process. Because no exploitation reports exist, the exploitation likelihood is uncertain, but the ability to obtain shared secrets presents a significant confidentiality risk if the conditions are met.

Generated by OpenCVE AI on October 27, 2026 at 13:23 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Eclipse KeyPont to a version newer than 2.0.0‑rc8 (e.g., 2.0.0‑rc9 or later) to restore proper key‑pair verification
  • If an upgrade is not possible, disable or remove all ML‑KEM public key objects from the token to prevent unauthorized reuse of IDs
  • Enforce authentication for all token sessions and enable audit logging for key creation and manipulation activities

Generated by OpenCVE AI on October 27, 2026 at 13:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 27 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Description In `github.com/eclipse-keypont/crypto11/v2` versions `>= 2.0.0-rc3, <= 2.0.0-rc8`, the ML-KEM key-pair lookup functions (`FindMLKEMKeyPair`, `FindMLKEMKeyPairs`, `FindMLKEMKeyPairsWithAttributes`) locate the public half of an ML-KEM key pair by `CKA_ID`/`CKA_LABEL` and never verify it against the private key. In addition, the "ID only" fallback search runs even when the private key has no `CKA_ID`, so the search template reduces to the public-key class and the ML-KEM key type and the first ML-KEM public key on the token is returned. `Encapsulate()` on the resulting key pair encrypts the fresh shared secret to that key, so its owner — not the holder of the private key the caller looked up — can recover the secret. An attacker who can open an unauthenticated session on the token and plant a public `CKK_ML_KEM` object carrying the victim's `CKA_ID`/`CKA_LABEL` receives the shared secrets for encapsulations performed through the substituted key pair, compromising the confidentiality of those secrets and of everything protected by keys derived from them. The v1 module paths have no ML-KEM support and are not affected.
Title ML-KEM key-pair lookup can bind an unrelated or attacker-planted public key, exposing encapsulated shared secrets
Weaknesses CWE-345
References
Metrics cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: eclipse

Published:

Updated: 2026-10-27T11:55:15.600Z

Reserved: 2026-10-22T11:56:53.145Z

Link: CVE-2026-115408

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-27T12:17:07.243

Modified: 2026-10-27T12:17:07.243

Link: CVE-2026-115408

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-27T13:30:04Z

Weaknesses
  • CWE-345

    Insufficient Verification of Data Authenticity