---
id: CVE-2026-89315
title: >-
  JwtClaims.MarshalJSON panics via reflect.StructOf when any untyped claim key
  is not a valid Go identifier suffix
summary: >-
  `JwtClaims.MarshalJSON` built a Go struct at runtime with `reflect.StructOf`,
  synthesising a field named `"A" + claimName` for each untyped claim.
  `reflect.StructOf` **panics** when a field name is not a valid Go identifier,
  or when it d…
severity: medium
cvss: 6.9
cvssVector: 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'
cvssSource: cna
cwe:
  - CWE-248
vendor: Eclipse Foundation
product: github.com/ThalesGroup/gose
affected:
  - github.com/ThalesGroup/gose >= 0.7.3 <= 0.13.0-rc1
  - github.com/eclipse-keypont/gose < 1.0.0-rc4
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T08:46:30.146Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-89315'
references:
  - url: >-
      https://github.com/eclipse-keypont/gose/security/advisories/GHSA-hwm6-rwv6-xgq8
tags:
  - cve.org
ingestedAt: '2026-10-23T09:20:44.056Z'
---

## Overview

`JwtClaims.MarshalJSON` built a Go struct at runtime with `reflect.StructOf`, synthesising a field named `"A" + claimName` for each untyped claim. `reflect.StructOf` **panics** when a field name is not a valid Go identifier, or when it duplicates another field. Both conditions are reachable from ordinary JWT claim names.

## Affected

- `github.com/ThalesGroup/gose >= 0.7.3 <= 0.13.0-rc1`
- `github.com/eclipse-keypont/gose < 1.0.0-rc4`

## Remediation

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