2

有惊有险—— KingDefi 收益计算逻辑漏洞分析

 3 years ago
source link: https://www.chainnews.com/articles/334428093122.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

有惊有险—— KingDefi 收益计算逻辑漏洞分析

据业内人士提供的有关信息,名为 KingDefi 的项目合约存在漏洞,并提示其他用户谨慎操作,提取资金并取消授权。…

· 29 分钟前

近日,据业内人士提供的有关信息(如下图所示),名为 KingDefi 的项目合约存在漏洞,并提示其他用户谨慎操作,提取资金并取消授权。知道创宇区块链安全实验室调研发现,KingDeFi 是一个 DeFi 项目,主要功能包含对 BSC、Solana 链上 DeFi 的收益聚合分析、用户 DeFi 收益追踪以及项目原生代币的抵押挖矿。
有惊有险—— KingDefi 收益计算逻辑漏洞分析在查看 BSC 链上的 KrownMaster 合约(用于抵押挖矿 staking )源码后发现,该合约确实存在逻辑漏洞,会导致用户收益率受到影响,在相应的计算逻辑存在疏漏,以下为详细解释。

合约链上地址如下:
https://bscscan.com/address/0x56a65a3736e65349e5b0737cb2c5eb7d5ccbbbe3#code

如下图所示,我们注意到在项目用户奖励更新算法逻辑的处理过程中存在对 investor 数组的一个遍历,此处 investor 地址存在被重复遍历并且修改对应奖励的可能性。
有惊有险—— KingDefi 收益计算逻辑漏洞分析如下图所示,用户在通过 deposit 调用进行抵押的时候,判断当用户抵押数量为 0 时,可作为 investor 地址加入投资收益列表从而获得抵押收益,而该判断可被黑客利用。
有惊有险—— KingDefi 收益计算逻辑漏洞分析如下图所示,黑客可通过调用 withdraw 或者 withdrawAll 函数将指定 pid 池子中的抵押数量提现,从而使得 user.amount 为 0,进而该地址可以在再次 deposit 抵押的时候通过相应检查进入 investor 列表,从而在 updatePool 函数中对黑客 investor 地址进行重复遍历并且增加多次抵押奖励,使得抵押奖励分配不均,影响到其他用户的抵押挖矿收益。
有惊有险—— KingDefi 收益计算逻辑漏洞分析
有惊有险—— KingDefi 收益计算逻辑漏洞分析通过查看项目 github 发现,KingDefi 项目方当前已对该问题进行了修改。

那么项目方如何修复该漏洞?查看项目的 github 地址 (https://github.com/kingdefi/Krown-Contracts/tree/main/Farm),发现其在 18 个小时前曾更新过代码,对比一下更新代码。
有惊有险—— KingDefi 收益计算逻辑漏洞分析发现项目方已经删除了用于存储用户地址的数组,改为了 rewardsPerShare 变量,该变量表示单位抵押代币所对应的奖励代币;同时项目方也更改了奖励的计算方式 (updatePool 函数):由原来循环所有用户地址来按比例分配奖励改为更新 rewardsPerShare 变量来计算用户奖励代币。
有惊有险—— KingDefi 收益计算逻辑漏洞分析对比两种奖励方式,后者已经不会产生前者因为重复计算奖励的问题,这种奖励方式类似于 sushiswap 的奖励计算方式,同时也避免了前者因为循环次数太多导致的 gas 销毁过大的问题。

Kingdefi 这次的漏洞影响到的是用户的奖励代币数量,攻击者可不断抵押提取来提高自身奖励的分配数量,但是用户的抵押代币是不受任何影响,可以正确安全提取出来。从项目方的修复结果来看,其换了一种常规奖励计算方式,该方式符合抵押挖矿逻辑,用户可正常且正确提取抵押和奖励代币。在此提醒广大项目方,在上线 Defi 挖矿项目前一定要做好代码审计,不同的计算方式在吸引新用户的同时也会大大增加犯错的风险!

实验室官网:www.knownseclab.com
知道创宇唯一指定存证平台www.attest.im
联系我们:[email protected]

知道创宇区块链安全实验室导航

微信公众号
@ 创宇区块链安全实验室
知道创宇区块链安全实验室 | 区块链安全解决方案:让人类进入安全的区块链世界
官方网站
@ 知道创宇区块链安全实验室
知道创宇区块链安全实验室 | 区块链安全解决方案:让人类进入安全的区块链世界

微博
@ 知道创宇区块链实验室
https://weibo.com/BlockchainLab

知乎
@ 知道创宇区块链安全实验室
https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi

Twitter
@KS_Blockchain
https://twitter.com/KSBlockchain
知道创宇区块链安全实验室|重要提醒:没有审计过 Chias(XCS) 项目


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK