Skip to main content
← All vulnerabilities
CVE-2026-89315EUVD-2026-108647GHSA-HWM6-RWV6-XGQ8

JwtClaims.MarshalJSON panics via reflect.StructOf when any untyped claim key is not a valid Go identifier suffix

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.0.0-rc4
None on Exploit-DB, Metasploit or GitHub

Summary

A Go JWT library's claims-serialization function (`JwtClaims.MarshalJSON`) can crash when a token contains custom claim names that aren't valid Go identifiers or that duplicate one another. This can terminate the application that is processing the token, causing a denial of service.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original 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.

Timeline

  1. CVE published
  2. First seen by cve.now

Affected versions

  • github.com/ThalesGroup/gose

    From 0.7.3 · through 0.13.0-rc1

  • github.com/eclipse-keypont/gose

    fixed in 1.0.0-rc4

References 1

GitHub · eclipse-keypont/gose