CVE-2026-55763
nicheRoyalty-debit ordering flaw in Klever-Go allows off-the-books KDA inflation
Klever-Go, the Go implementation of the Klever blockchain protocol, contains a logic-ordering flaw in processPercentageRoyaltiesTransfer (core/kapp/accounts/accounts.go) where the sending account is debited only after the royalty split loop and after an early return when royaltiesToPay reaches zero. An attacker who owns a KDA asset can configure a TransferPercentage royalty with a 10000 (100%) split, which consumes the entire royalty pool, sets royaltiesToPay to zero, and causes the function to return before the source account is ever debited. Every subsequent transfer of that asset then delivers the full royaltyAmount to the split recipient while the sender pays nothing and the supply counter is not updated, enabling unbounded off-the-books inflation of the transferred KDA at the asset owner's discretion. Anyone operating a Klever chain node or embedding klever-go versions prior to 1.7.19 is affected; the sibling processFixedRoyaltiesTransfer path is not impacted because it debits the sender before distributing. No public proof-of-concept or in-the-wild exploitation is known, the issue is not in CISA KEV, and EPSS currently estimates only a 0.3% probability of exploitation within 30 days.
What to do: Upgrade klever-go to version 1.7.19 or later, and have node operators and any services embedding the library rebuild and redeploy with the patched version. Audit configured KDA assets for TransferPercentage royalties set to a 100% split, since transfers of such assets trigger the uncosted mint, and monitor KDA supply accounting for off-the-books inflation. Note that only the percentage-royalty transfer path is affected, so assets using fixed royalties do not need remediation beyond the standard upgrade.
| Klever-Go (Go implementation of the Klever blockchain protocol) | all versions prior to 1.7.19 (fixed in 1.7.19) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.19, processPercentageRoyaltiesTransfer in core/kapp/accounts/accounts.go calls SubFromBalance after the split loop and after the royaltiesToPay royaltiesToPay, so a valid PercentTransferPercentage = 10000 split consumes exactly 100 percent of the royalty pool, sets royaltiesToPay to zero, and returns before the source account is debited. The split recipient receives the full royaltyAmount while the sender pays nothing and the supply counter is not updated, allowing unbounded off-the-books inflation of the transferred KDA. A KDA owner must configure a TransferPercentage royalty with a 100 percent split, after which any holder's transfer of the asset triggers the mint; the sibling processFixedRoyaltiesTransfer path is not affected because it debits the source before distribution. This issue is fixed in version 1.7.19.
- Weakness
- CWE-841
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.