Skip to main content

Ringpop-Go CVE-2026-65654

| EUVDEUVD-2026-83895 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-09-21 Temporal GHSA-2cw5-f255-55f8
8.7
CVSS 4.0 · Vendor: Temporal
View

Attack ChainAIDerived

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

  1. Access
    Reach node's TChannel gossip listener
  2. Delivery
    Send SWIM changes for many fake member addresses
  3. Exploit
    Attach oversized label keys/values/counts
  4. Execution
    Labels accepted, retained and re-gossiped
  5. Persist
    Memory and bandwidth exhaustion
  6. Impact
    Hosting process unavailable

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires network reachability to a live Ringpop TChannel/SWIM gossip listener on an affected version of github.com/temporalio/ringpop-go, plus the application using ringpop's label feature with configured LabelOptions limits. No authentication or user interaction is needed once the listener is reachable, because SWIM membership messages are processed without applying the label limits to peer-supplied maps. The primary limiting factor is exposure: the gossip/membership port is usually an internal cluster-communication interface, so realistic risk is highest where that listener is reachable from untrusted or shared network segments; a node with a properly network-isolated gossip port is largely out of reach for external attackers.

Impact

The signals are internally consistent and point to a genuine but bounded availability threat. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H, base 8.7 'High') describes network-reachable, low-complexity, unauthenticated exploitation with high availability impact and explicitly zero confidentiality/integrity impact - matching the description and CWE-770 (uncontrolled resource consumption). This is a real DoS, not a mislabeled high-CVSS artifact, and the vendor score is not availability-inflated the way many auto-generated CRITICAL entries are. However, the score is driven by PR:N/AV:N, which somewhat overstates real-world reach: the attacker must be able to reach a live Ringpop TChannel/SWIM gossip listener, which in typical deployments is an internal cluster-membership port rather than an internet-facing service. EPSS is not provided, the CVE is NOT in CISA KEV, and no public exploit code is referenced - so there is no evidence of active or imminent mass exploitation. Net: a legitimate patch-worthy availability bug for anyone running the affected library on an exposed or shared network segment, but lower urgency than the 8.7 suggests for operators whose gossip port is network-isolated. No signals directly conflict; the main caveat is exposure of the TChannel listener, which the CVSS PR:N/AV:N does not capture.

Exploit ScenarioDerived

An attacker with network reachability to a node's Ringpop TChannel gossip listener repeatedly sends SWIM membership-change messages for many distinct member addresses, each carrying label keys/values/counts that exceed the receiver's configured LabelOptions limits. Because affected versions validate limits only for local label changes, the peer-supplied labels are accepted, retained in the member list, and re-disseminated to other peers, driving memory and gossip-bandwidth growth until the hosting process becomes unavailable. No public exploit code is referenced, but the attack is conceptually simple and requires only a crafted gossip peer.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 21, 2026

Unauthenticated network peers that can reach a live Ringpop TChannel/SWIM gossip listener can drive memory and gossip-bandwidth exhaustion in github.com/temporalio/ringpop-go, because peer-supplied label maps are retained and re-disseminated without being checked against the application's configured LabelOptions limits. Applications that use ringpop's label feature are affected; repeated membership changes for distinct member addresses carrying oversized label keys, values, or counts inflate the member list and propagate to the whole cluster, degrading and potentially taking down the hosting process (availability only, no confidentiality or integrity impact). Exploitation requires network reachability to the gossip/TChannel port - typically an internal cluster interface - and there is no public exploit identified at time of analysis, though the assessed severity (CVSS 3.1 base 8.7, PR:N, A:H) makes the exposure of that port the decisive risk factor.

RemediationAI

Vendor fixes are published upstream: apply the changes in commit c317effcdc8bc09ed1c11f00994782bda9685d4b or the associated pull request https://github.com/temporalio/ringpop-go/pull/22 (which validates peer-supplied label maps before they are retained or disseminated), and pick up the additional reference commit d0de5fe1333074d5c41a88e9053592e39f495bb2; note the patch status is publishable as an upstream fix (PR/commit) rather than a confirmed tagged release, so verify that the version you vendor actually contains the validation and pin your go.mod to a commit containing it. If you cannot change the dependency immediately, the highest-value compensating control is to restrict who can reach the SWIM/TChannel gossip listener: place the gossip port on a private interface, enforce network ACLs or a firewall so only known cluster members can connect, and terminate or proxy external traffic before it reaches ringpop - the trade-off is that cluster expansion across untrusted or multi-tenant segments becomes harder and must be brokered by that proxy or overlay network, and misconfigured ACLs can partition membership. Where the labels feature is not required, disabling or not configuring labels removes the affected code path entirely, at the cost of losing label-based routing or role discovery; where labels are required, keep LabelOptions limits as tight as your application tolerates and monitor process memory and gossip bandwidth for spikes from unexpected member additions, since detection is otherwise difficult and the impact is gradual resource exhaustion. Finally, alert on abnormal growth in member-list size and on membership changes for addresses that are not legitimate cluster members, since those are the observable signatures of this abuse pattern, and roll the patched build across the cluster promptly because a single unpatched node can still relay oversized label data to its peers.

Affected VersionsENISA

temporalio/ringpop-go 0.0.0-20160824133849-d0de5fe13330 <0.0.0-20260724173031-c317effcdc8b

Affected Packages

euvd temporalio_ringpop_go fix: 0.0.0-20260724173031-c317effcdc8b

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

Ringpop-Go is Uber's Go implementation of the Ringpop library: a gossip-based membership and request-routing layer that lets a cluster of application nodes discover each other over SWIM (Scalable Weakly-consistent Infection-style Process Group Membership) and expose services over TChannel/Thrift. Nodes carry arbitrary key/value "labels" (for example a role or shard identifier), and applications configure LabelOptions limits - maximum number of labels, key/value lengths, and count constraints - that are enforced when the local process changes its own labels (see the label validation logic around swim/labels.go and the member-list retention/dissemination paths in swim/memberlist.go). The gap is that incoming SWIM membership updates containing a peer's label map were merged into the member list without the same validation, so limits were applied asymmetrically, only on the local write path. This is CWE-770 (Allocation of Resources Without Limits or Throttling): an attacker who can inject or relay membership changes for many distinct member addresses with oversized label data causes the receiver to allocate and store unbounded label structures, then gossip them onward to peers, amplifying both memory footprint and network traffic beyond configured bounds. The upstream fix validates peer-supplied label maps before retention or dissemination, closing the sender-side-only enforcement gap. Because the issue lives in the membership/gossip plane rather than in an application endpoint, the attack surface is the SWIM/TChannel listener itself, not the labeled service APIs.

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 (Temporal) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Unauthenticated network peer reaching the gossip listener triggers resource exhaustion with no C/I impact, so PR:N/AV:N/AC:L and A:H only; scope unchanged as the same process is impacted.

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

Primary rating from Vendor (Temporal).

CVSS VectorVendor: Temporal

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
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

github.com/temporalio/ringpop-go enforces configured LabelOptions limits when an application changes the local node's labels, but affected versions do not apply those limits to label maps received in SWIM membership changes. A network peer that can reach a live Ringpop TChannel listener can repeatedly submit changes for distinct member addresses containing label keys, values, or counts that exceed the receiver's configured limits. Accepted labels are retained in the member list and disseminated to peers, allowing memory and gossip-bandwidth consumption to exceed configured bounds and potentially making the hosting process unavailable. The fix validates peer-supplied label maps before they are retained or disseminated. Availability only; no confidentiality or integrity impact was identified.

Executive ViewAI

Why It Matters

Temporal's Ringpop Go (github.com/temporalio/ringpop-go) membership library is affected by a high-severity availability issue that can let an unauthenticated peer reaching the cluster gossip port exhaust resources and destabilize the service. Organizations running Temporal or other services that embed Ringpop with labels enabled could experience cluster-wide membership degradation or instance outages, affecting service uptime and customer-facing operations. No public exploit identified at time of analysis, but internal network exposure of the gossip listener should be treated as the key risk until patched.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 55% exploitable
Prevalence
Low
niche Go SWIM/gossip clustering library, though it underpins the popular Temporal server
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
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