Quick answers
- Is CVE-2026-89317 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-89317 being exploited in the wild.
- How severe is CVE-2026-89317?
- Informational severity, published 23 October 2026.
- Which products and versions are affected?
- Eclipse KeyPont Gose prior to 1.0.0-rc4; Thales Gose 0.7.3 through 0.13.0-rc1.
- Is there a fix for CVE-2026-89317?
- Yes: fixed in eclipse-keypont/gose 1.0.0-rc4 or later; github.com/ThalesGroup/gose users must migrate to github.com/eclipse-keypont/gose v1.0.0-rc4. Until then: Inspect the decoded protected header before calling Verify and reject any token whose `crit` member is present and non-empty.</anigation> <parameter name="timeline">[ { "kind": "disclosed", "at": "2026-09-01" }, { "kind": "advisory", "at": "2026-10-23" } ] Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-89317 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-89317?
- Check whether you run Eclipse KeyPont Gose or Thales Gose at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- Fixed in: eclipse-keypont/gose 1.0.0-rc4 or later; github.com/ThalesGroup/gose users must migrate to github.com/eclipse-keypont/gose v1.0.0-rc4
Inspect the decoded protected header before calling Verify and reject any token whose `crit` member is present and non-empty.</anigation> <parameter name="timeline">[ { "kind": "disclosed", "at": "2026-09-01" }, { "kind": "advisory", "at": "2026-10-23" } ]
Technical details
The vulnerability is a missing implementation check: JwtVerifierImpl.Verify parsed the JWS `crit` header field but never validated it, violating RFC 7515 §4.1.11 which requires rejection of JWS tokens with critical extension parameters the receiver does not support. Since gose implements no header extensions, any non-empty `crit` value should have been rejected. The attack vector is cross-context replay: an attacker with a legitimately signed token carrying critical constraints (e.g., RFC 7797 b64:false or RFC 7800 cnf proof-of-possession) can present it to a gose verifier that ignores these constraints.
Affected products
- Thales gose 0.7.3 through 0.13.0-rc1
- Eclipse Keypont gose prior to 1.0.0-rc4