Description
`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.
Published: 2026-10-23
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch Now
AI Analysis

Impact

The vulnerability resides in JwtClaims.MarshalJSON, which constructs a Go struct at runtime with reflect.StructOf, naming each field as "A" plus the claim name. If a JWT contains an untyped claim whose name is not a valid Go identifier or duplicates another field, reflect.StructOf panics. This results in the application crashing when handling such tokens, leading to a denial of service for any user or system relying on the library. The weakness is a failure-to-sanitize input, correlating with CWE-248.

Affected Systems

Eclipse Foundation’s Eclipse KeyPont - GOSE is affected. No specific affected version range is provided, so all releases employing the mentioned MarshalJSON implementation are potentially impacted.

Risk and Exploitability

The CVSS score of 6.9 indicates medium severity. EPSS data is unavailable, and the vulnerability is not listed in CISA KEV, suggesting no known widespread exploitation. The attack vector likely involves an attacker crafting a malicious JWT claim name and delivering it to a system that uses the library. If successful, the crash provides a disruptive denial of service but does not directly expose code execution or data exfiltration capabilities.

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

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update Eclipse KeyPont - GOSE to the most recent released version that includes the fix for the reflect.StructOf panic.
  • Implement input validation for JWT claim names before attempting to marshal, ensuring they are valid Go identifiers and not duplicated.
  • Consider replacing the library’s untyped claim serialization logic with a safer alternative that does not rely on runtime struct construction.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 02 Nov 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 26 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
First Time appeared Eclipse
Eclipse keypont-gose
Vendors & Products Eclipse
Eclipse keypont-gose

Fri, 23 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description `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.
Title JwtClaims.MarshalJSON panics via reflect.StructOf when any untyped claim key is not a valid Go identifier suffix
Weaknesses CWE-248
References
Metrics cvssV4_0

{'score': 6.9, 'vector': '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'}


Subscriptions

Eclipse Keypont-gose
cve-icon MITRE

Status: PUBLISHED

Assigner: eclipse

Published:

Updated: 2026-11-02T12:59:14.783Z

Reserved: 2026-09-11T13:55:49.179Z

Link: CVE-2026-89315

cve-icon Vulnrichment

Updated: 2026-11-02T12:55:06.143Z

cve-icon NVD

Status : Deferred

Published: 2026-10-23T09:17:08.027

Modified: 2026-11-02T13:17:39.570

Link: CVE-2026-89315

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-26T19:09:30Z

Weaknesses