Description
Klever-Go is the Go implementation of the Klever blockchain protocol. In versions prior to 1.7.18, the account-data trie syncers are vulnerable to a resource-exhaustion flaw that leaks bounded throttler slots on error paths. In syncDataTrie() (in both userAccountsSyncer.go and kappAccountsSyncer.go), StartProcessing() reserves a slot from the NumGoRoutinesThrottler, but the corresponding EndProcessing() is only called on the success path and on the duplicate-root early return. As a result, any error from trie.NewTrie(), trie.NewTrieSyncer(), or trieSyncer.StartSyncing() (including the network-dependent timeout path) permanently consumes one slot for the lifetime of the throttler. An attacker who can repeatedly cause trie-node sync failures or timeouts during bootstrap can exhaust the bounded throttler, after which further account-data trie syncs stop making progress and SyncAccounts() returns a timeout. Because epoch bootstrap in syncUserAccountsState() and syncKappAccountsState() aborts on any such error, this causes bootstrap to fail, a core availability issue affecting fresh, restarting, or resyncing nodes and validators. This issue is fixed in version 1.7.18.
Published: 2026-08-07
Score: 5.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Klever-Go, the Go implementation of the Klever blockchain protocol, has a resource‑exhaustion vulnerability in its account‑data trie sync mechanism. During account synchronization, a throttler slot is reserved but is never released when certain errors occur, such as failures to create a trie or timeouts. Each unreleased slot permanently occupies the throttler, eventually exhausting its capacity. When the throttler is full, subsequent sync operations fail and return timeouts, causing critical bootstrap and state synchronization processes to abort. This flaw directly leads to a denial of service against nodes and validators that rely on successful bootstrap or resynchronization.

Affected Systems

The vulnerability affects all installations of Klever‑IO’s Klever‑Go product running any version prior to 1.7.18. Updating to version 1.7.18 or later eliminates the flaw; earlier versions remain susceptible.

Risk and Exploitability

With a CVSS score of 5.9 the flaw is of moderate severity. The EPSS score is not available, and the vulnerability is not listed in KEV, indicating no confirmed public exploitation yet. An attacker, particularly one capable of inducing repeated trie‑sync failures or timeouts—such as a network adversary or a malicious peer—can target bootstrap operations to exhaust throttler slots. Once exhausted, state sync halts, resulting in persistent availability issues for new or resynchronizing nodes.

Generated by OpenCVE AI on August 7, 2026 at 23:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Klever‑Go to v1.7.18 or later to apply the fix that properly releases throttler slots on error
  • Ensure all operational nodes and validators are running the updated version after the upgrade
  • Monitor account‑sync metrics and network latency to detect abnormal failures that could indicate attempts to trigger the DoS condition

Generated by OpenCVE AI on August 7, 2026 at 23:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-fw38-pc54-jvx9 Klever-Go KVM: Throttler slot leak in trie account-data sync causes epoch bootstrap / state sync DoS
History

Fri, 07 Aug 2026 23:45:00 +0000

Type Values Removed Values Added
First Time appeared Klever-io
Klever-io klever-go
Vendors & Products Klever-io
Klever-io klever-go

Fri, 07 Aug 2026 22:30:00 +0000

Type Values Removed Values Added
Description Klever-Go is the Go implementation of the Klever blockchain protocol. In versions prior to 1.7.18, the account-data trie syncers are vulnerable to a resource-exhaustion flaw that leaks bounded throttler slots on error paths. In syncDataTrie() (in both userAccountsSyncer.go and kappAccountsSyncer.go), StartProcessing() reserves a slot from the NumGoRoutinesThrottler, but the corresponding EndProcessing() is only called on the success path and on the duplicate-root early return. As a result, any error from trie.NewTrie(), trie.NewTrieSyncer(), or trieSyncer.StartSyncing() (including the network-dependent timeout path) permanently consumes one slot for the lifetime of the throttler. An attacker who can repeatedly cause trie-node sync failures or timeouts during bootstrap can exhaust the bounded throttler, after which further account-data trie syncs stop making progress and SyncAccounts() returns a timeout. Because epoch bootstrap in syncUserAccountsState() and syncKappAccountsState() aborts on any such error, this causes bootstrap to fail, a core availability issue affecting fresh, restarting, or resyncing nodes and validators. This issue is fixed in version 1.7.18.
Title Klever-Go KVM: Throttler slot leak in trie account-data sync causes epoch bootstrap / state sync DoS
Weaknesses CWE-400
CWE-772
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Klever-io Klever-go
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-07T22:18:18.735Z

Reserved: 2026-05-29T14:35:45.903Z

Link: CVE-2026-49343

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-07T23:30:17Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-772

    Missing Release of Resource after Effective Lifetime