Skip to main content

Eclipse KeyPont GoSE EUVDEUVD-2026-108650

| CVE-2026-89318 MEDIUM
Uncaught Exception (CWE-248)
2026-10-23 eclipse
6.9
CVSS 4.0 · Vendor: eclipse
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain recipient public JWK, kid and oaepHash
  2. Delivery
    Wrap arbitrary CEK and craft JWE with wrong-sized IV
  3. Exploit
    Submit compact JWE to Decrypt endpoint
  4. Execution
    Reach stdlib GCM.Open and trigger nonce-length panic
  5. Impact
    Crash decrypting goroutine or process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

Exploitation requires only that the attacker possess the recipient's RSA public key, its kid, and the deployment's oaepHash - all of which are public parameters normally published in a JWKS; no secret, no prior valid message, and no authentication are needed, which is why the vector is effectively unauthenticated (PR:N). The specific trigger is a compact JWE whose base64url-decoded initialization-vector segment is any length other than 12 bytes, reaching cipher.AEAD.Open before the authentication tag is checked. The product must be at an affected version (>= v0.8.0 on eclipse-keypont/gose below v1.0.0-rc4, or any ThalesGroup/gose through v0.13.0-rc1) and must call JweRsaKeyEncryptionDecryptorImpl.Decrypt on externally supplied JWEs. The decisive limiting factor is the caller's panic posture: handlers running under net/http recover per request so impact is a single failed request, whereas a worker or daemon goroutine without its own recover() suffers process termination - this determines whether the flaw is a nuisance or a service outage.

Impact

This is a genuine but bounded-severity denial-of-service issue, and the signals are internally consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) correctly reflects that a remote actor needs only network reachability and no authentication secret - producing a valid EncryptedKey requires only the recipient's public JWK, kid, and oaepHash, all of which are public JOSE parameters. The only impact metric set is VA:L (availability, low); VC/VI/SC/SI/SA are all N, matching the advisory's statement that the panic fires before tag verification and plaintext production, so confidentiality and integrity are untouched. The 6.9 Medium score is therefore driven purely by a single-impact DoS, not a critical compromise. The vuln.today decision label is 'this_month' - not act_now or emergency - so this is a patch-in-routine-cycle item, not a drop-everything event. No KEV listing and no EPSS score are present in the input, so there is no evidence of active exploitation or a quantified exploitation probability; absence of these is not itself a risk signal. Crucially, real-world impact is caller-dependent: under net/http (which recovers per request) a single request fails, whereas a worker or daemon goroutine without its own recover() terminates the process. The advisory deliberately scored the milder case (A:L). Net: a real, cheaply-triggered, unauthenticated DoS in deployments that do not recover panics, but with a capped impact ceiling.

Exploit ScenarioDerived

A service exposes a JWE-decryption endpoint using eclipse-keypont/gose and publishes its recipient public key in a JWKS. An attacker RSA-OAEP-wraps an arbitrary 32-byte CEK under that public key and submits a compact JWE whose initialization-vector segment decodes to a non-12-byte value; aead.Open then hits the Go stdlib GCM nonce-length check and panics. A confirmed, executed reproducer exists in the public GHSA advisory (panics on IV lengths 0 and 7, clean auth failure at 12 bytes), so publicly available exploit code exists; if the handler runs in a goroutine without recover(), the process terminates.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Eclipse KeyPont GoSE's JWE decryptor panics instead of returning an error when a compact JWE carries an incorrectly sized initialization vector, giving a denial of service to anyone holding the recipient's public key. The flaw affects github.com/eclipse-keypont/gose releases from v0.8.0 up to but excluding v1.0.0-rc4, and the deprecated github.com/ThalesGroup/gose module through v0.13.0-rc1. A public PoC reference and a working reproducer are documented in the upstream advisory; it is not confirmed as actively exploited (no KEV entry), and the practical impact ranges from a single failed HTTP request to full process termination depending on the caller's panic recovery posture.

RemediationAI

Vendor-released patch: upgrade to github.com/eclipse-keypont/gose v1.0.0-rc4 or later, which adds the nonce-length and authentication-tag-overhead checks before cipher.AEAD.Open. Consumers still on github.com/ThalesGroup/gose must change the module path, not just the version - that module line stops at v0.13.0-rc1, remains vulnerable, and carries a // Deprecated: directive, so 'go get -u' will not remediate; the import and go.mod entry must be rewritten from github.com/ThalesGroup/gose v0.13.0-rc1 to github.com/eclipse-keypont/gose v1.0.0-rc4. Where upgrading is not immediately possible, the advisory's stated workaround is to validate that the decoded initialization vector is exactly 12 bytes before handing a JWE to JweRsaKeyEncryptionDecryptorImpl.Decrypt; recovering panics at the request boundary limits the blast radius but does not address the underlying defect. Detail and the diff are at https://github.com/eclipse-keypont/gose/security/advisories/GHSA-265w-83cm-777q.

Affected VersionsENISA

Eclipse KeyPont - GOSE 0.8.0 ≤0.13.0-rc1
Eclipse KeyPont - GOSE 0 <1.0.0-rc4

Affected Packages

euvd eclipse_keypont_gose fix: 1.0.0-rc4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

GoSE ("Go Security Essentials") is an Eclipse KeyPont Go library implementing JOSE/JWE handling, and the defect sits in JweRsaKeyEncryptionDecryptorImpl.Decrypt, which unwraps a content-encryption key with RSA-OAEP and then decrypts the payload with AES-GCM. The Go standard library's crypto/cipher GCM implementation panics rather than returning an error when the supplied nonce is not exactly NonceSize() (12) bytes, and the library passed jwe.InitializationVector straight from a base64url-decoded JWE segment into cipher.AEAD.Open without a length check. That is CWE-248 (Unrecoverable Exception from an Uncontrolled Input): an attacker-chosen IV length of any value other than 12 drives the code into an unrecoverable panic. Because the panic occurs after RSA-OAEP unwrapping of an attacker-supplied CEK but before authentication-tag verification, the attacker only needs the recipient's public JWK, its kid, and the deployment's oaepHash - all normally public - so no secret or prior valid message is required and the vector is effectively unauthenticated (PR:N). The trigger is a compact JWE whose decoded IV segment is any length other than 12 bytes; confidentiality and integrity are unaffected because the panic precedes tag verification and plaintext production. The upstream fix adds explicit NonceSize() and Overhead() checks (commit e4ab198, merged as 692c25c) returning ErrInvalidNonce / ErrInvalidAuthenticationTag instead of reaching the stdlib sink.

Know when Go gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (eclipse) PRIMARY 6.9 MEDIUM
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
vuln.today AI 5.3 MEDIUM

Unauthenticated network trigger using only the public key gives AV:N/AC:L/PR:N/UI:N; only availability is affected and only partially (caller may recover), so C:N/I:N/A:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (eclipse).

CVSS VectorVendor: eclipse

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 23, 2026 - 10:01 EUVD

DescriptionCVE.org

JweRsaKeyEncryptionDecryptorImpl.Decrypt passed the JWE's initialization vector to cipher.AEAD.Open without checking its length. The Go standard library panics rather than returning an error when a GCM nonce is not exactly NonceSize() bytes, so a JWE carrying a wrong-sized IV crashes the decrypting goroutine.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche Go JOSE/JWE library, limited enterprise deployment footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Go

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2016-5386 HIGH
8.1 Jul 19

The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there

CVE-2025-68121 CRITICAL POC
10.0 Feb 05

Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu

CVE-2019-14809 CRITICAL POC
9.8 Aug 13

net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by

CVE-2026-90942 CRITICAL POC
9.3 Sep 14

Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and

CVE-2026-101090 CRITICAL POC
9.3 Sep 27

Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re

CVE-2026-78428 HIGH POC
8.8 Sep 17

Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a

CVE-2026-92791 HIGH POC
8.7 Sep 16

Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure

CVE-2018-7187 HIGH POC
8.8 Feb 16

The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa

CVE-2026-16651 HIGH POC
8.7 Sep 21

Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash

CVE-2026-82405 HIGH POC
8.7 Sep 23

Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker

CVE-2026-82409 HIGH POC
8.4 Sep 23

Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy