---
id: CVE-2026-109425
title: >-
  Tink-go (tink-crypto/tink-go) through 2.8.0 contains an input-validation
  vulnerability where keyset.NewHandleWithNoSecrets() and ReadWithNoSecrets()
  skip the structural Validate() step before constructing a keyset.Handle,
  allowing malfor…
summary: >-
  Tink-go (tink-crypto/tink-go) through 2.8.0 contains an input-validation
  vulnerability where keyset.NewHandleWithNoSecrets() and ReadWithNoSecrets()
  skip the structural Validate() step before constructing a keyset.Handle,
  allowing malfor…
severity: medium
cvss: 5.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'
cwe:
  - CWE-1286
published: '2026-10-12'
updated: '2026-10-13'
sourceUpdated: '2026-10-13T17:17:28.387'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-109425'
references:
  - url: 'https://github.com/tink-crypto/tink-go/issues/68'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/tink-go-keyset-validation-bypass-via-newhandlewithnosecrets
    label: disclosure@vulncheck.com
tags:
  - nvd
epss: 0.00193
epssPercentile: 0.08302
ingestedAt: '2026-10-12T21:04:28.919Z'
---

## Overview

Tink-go (tink-crypto/tink-go) through 2.8.0 contains an input-validation vulnerability where keyset.NewHandleWithNoSecrets() and ReadWithNoSecrets() skip the structural Validate() step before constructing a keyset.Handle, allowing malformed public or no-secret keysets that violate Tink's keyset invariants to be accepted. Attackers can supply a malformed keyset, such as one with an enabled public key lacking a valid primary key or a DESTROYED key with no KeyData, causing inconsistent downstream validation where functions like jwt.JWKSetFromPublicKeysetHandle() process the invalid handle and produce a JWK set, potentially misleading applications that rely on successful handle construction as proof of keyset integrity.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
