Description
Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.20, indexer/common.go serializedDataForUpdateAccounts places the attacker-controlled acc.Name value into an Elasticsearch _bulk JSON and NDJSON request without escaping it. The SetAccountName transaction accepts valid UTF-8 account names containing quotes, backslashes, and newlines, and the resulting name is stored in consensus account state. When an indexer processes the account, those characters can break the JSON string, reject a bulk batch, or inject additional bulk actions that create, overwrite, or delete documents in indices writable by the indexer. The persistent state value is replayed by new or historical indexers, and direct access to the indexing host or Elasticsearch port is not required. This issue is fixed in version 1.7.20.
Published: 2026-09-23
Score: 8.4 High
EPSS: n/a
KEV: No
Impact: Data tampering of indexed explorer and potential denial of service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability resides in the Klever-Go indexer, which places unescaped on‑chain account names directly into Elasticsearch bulk JSON requests. An attacker can craft a SetAccountName transaction with quotes, backslashes, or newlines that break the JSON string, reject the bulk batch, or inject additional bulk actions to create, overwrite, or delete documents in all indices writable by the indexer. Because the account name is stored in consensus state, replaying that state by any new or historic indexer will reproduce the injection, and the attacker does not need direct access to the Elasticsearch host or port. The result is forged explorer data or a corrupted index that can mislead users or render the index unusable.

Affected Systems

The affected product is the Klever-Go Go implementation of the Klever blockchain protocol. All releases of Klever-Go older than version 1.7.20 are vulnerable. The issue exists in the indexer component that serializes account-related data for Elasticsearch updates.

Risk and Exploitability

The CVSS score of 8.4 marks this flaw as high severity. EPSS output is not available, but the lack of an entry in the CISA KEV catalog does not diminish the potential impact. An attacker only needs to publish a malicious account name transaction; no direct connection to the indexer or Elasticsearch is required. Once the transaction enters the blockchain, any node that runs the indexer will process the injection, potentially leading to widespread data tampering across explorer services. Attackers can repeatedly inject documents until the indices become unusable, exposing a denial‑of‑service risk.

Generated by OpenCVE AI on September 23, 2026 at 20:46 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Klever-Go to version 1.7.20 or later.
  • Re‑index all existing account data to remove any injected documents that may already exist.
  • Enable monitoring of indexer logs for bulk request failures or unexpected document actions.
  • If an immediate upgrade is not possible, restrict account name characters to a whitelist (e.g., alphanumeric and limited punctuation) to prevent injection of control characters.

Generated by OpenCVE AI on September 23, 2026 at 20:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7c7c-373r-gfjj Klever-Go: Elasticsearch bulk / painless injection via on-chain account name -> explorer/indexer data forgery
History

Wed, 23 Sep 2026 22:00:00 +0000

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

Wed, 23 Sep 2026 19:30:00 +0000

Type Values Removed Values Added
Description Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.20, indexer/common.go serializedDataForUpdateAccounts places the attacker-controlled acc.Name value into an Elasticsearch _bulk JSON and NDJSON request without escaping it. The SetAccountName transaction accepts valid UTF-8 account names containing quotes, backslashes, and newlines, and the resulting name is stored in consensus account state. When an indexer processes the account, those characters can break the JSON string, reject a bulk batch, or inject additional bulk actions that create, overwrite, or delete documents in indices writable by the indexer. The persistent state value is replayed by new or historical indexers, and direct access to the indexing host or Elasticsearch port is not required. This issue is fixed in version 1.7.20.
Title Klever-Go: Elasticsearch bulk / painless injection via on-chain account name -> explorer/indexer data forgery
Weaknesses CWE-116
References
Metrics cvssV4_0

{'score': 8.4, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:H/SA:L'}


Subscriptions

Klever-io Klever-go
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-23T19:23:45.954Z

Reserved: 2026-08-28T22:00:43.513Z

Link: CVE-2026-82409

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-09-23T20:17:16.893

Modified: 2026-09-23T20:17:17.027

Link: CVE-2026-82409

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-23T21:45:02Z

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output