CVE-2026-46403 in klever-go信息

摘要

由 VulDB • 2026-07-23

Klever-Go 是 Klever 区块链协议的 Go 语言实现。在 v1.7.17 版本之前,KVM 将 `ExecuteReadOnlyWithTypedArguments` 暴露为只读执行机制。该钩子(hook)会保存之前的只读状态,设置 `runtime.SetReadOnly(true)`,执行目标上下文,然后恢复之前的只读状态。然而,间接合约删除和升级路径在 `runtime.ReadOnly()` 返回 true 时并未拒绝执行。结果导致通过只读执行访问的合约可以调用其拥有的目标合约的生产环境删除钩子(production delete hook)。删除路径会将目标地址追加到 `vmOutput.DeletedAccounts` 中,输出上下文将 `DeletedAccounts` 合并到调用者的输出中,随后智能合约处理器会通过处理 VM 输出来删除该字段中列出的账户。根本原因在于只读模式被应用为运行时状态,但并未在改变状态的删除和升级主机核心(host-core)路径中得到强制执行。这破坏了依赖只调用来检查其他合约而不允许被调用方产生改变状态的 VM 输出的工作流所预期的隔离边界。该问题已在 v1.7.17 版本中修复。现在,当 `runtime.ReadOnly()` 返回 true 时,合约删除和升级的主机核心路径将拒绝执行。针对删除、升级、存储写入、价值转移以及任何后续可能改变链状态的 VM 输出字段,均已对不变量进行了回归测试。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!