漏洞原因
近日,据业内人士提供的有关信息,名为KingDefi的项目合约存在漏洞,并提示其他用户谨慎操作,提取资金并取消授权。知道创宇区块链安全实验室调研发现,KingDeFi是一个DeFi项目,主要功能包含对BSC、Solana链上DeFi的收益聚合分析、用户DeFi收益追踪以及项目原生代币的抵押挖矿。
在查看BSC链上的KrownMaster合约源码后发现,该合约确实存在逻辑漏洞,会导致用户收益率受到影响,在相应的计算逻辑存在疏漏,以下为详细解释。合约链上地址如下:https://bscscan.com/address/0x56a65a3736e65349e5b0737cb2c5eb7d5ccbbbe3#code如下图所示,我们注意到在项目用户奖励更新算法逻辑的处理过程中存在对investor数组的一个遍历,此处investor地址存在被重复遍历并且修改对应奖励的可能性。
NBA球员Malik Monk“Gutter Kicks Edition 1”球鞋NFT以6 ETH售出:12 月 28 日,据官方消息,NBA 湖人队球员 Malik Monk 在圣诞比赛期间穿着的“Gutter Kicks Edition 1”球鞋 NFT 在 OpenSea 上以 6 ETH(24,000 美元)售出,拍卖所得将用来帮助美国阿肯色州东北部受龙卷风影响的家庭。
据悉,该 NFT 是 Gutter Cat Gang“Gutter Kicks”系列 NFT 之一,采用 Malik Monk 在 2021 年圣诞节洛杉矶湖人队对阵布鲁克林篮网队比赛中穿的篮球鞋 NFT 版本。Edition 1 是世界上第一款在新更名 Crypto.com Arena 球馆(前身斯台普斯中心)里穿着的 NFT 鞋款。[2021/12/28 8:09:22]
ZCON COO Jason Kim:将与视频内容公司联合制作更多样化的内容:据官方消息,2021年7月28日ZCON 首席运营官Jason Kim做客XT直播间,与XT AMA专栏主持人Joyce在XT官方英文群以及中文群内进行了在线AMA活动。
在谈及ZCON的发展计划时Jason Kim表示:“关于视频内容,电影《Huni》在今年初已制作完成,将于今年8月上映。电影《Supporting Actor》也计划在今年第三季度进行制作。而且,我们目前正与一位艺术家合作拍摄一部短剧并签订了管理合同,现在还处于筹备阶段,我打算在8月份完成拍摄并于9月份在YouTube上映来提升ZCON的品牌知名度。关于平台发展,利用名人内容的NFT市场将在8月开放测试服务,并在第三季度内提供正式服务。NFT市场将为新艺人打造全国粉丝群,为有潜力的新艺人提供发展机会。考虑到网络购物的需求,我们计划打造一个购物商场,其产品以现有剧集的曝光为主,然后再维护ZCON平台。“
XT是一家社交化交易平台。[2021/7/28 1:20:31]
如下图所示,用户在通过deposit调用进行抵押的时候,判断当用户抵押数量为0时,可作为investor地址加入投资收益列表从而获得抵押收益,而该判断可被黑客利用。
现场 | Ether Lab CEO Kim Kyung Soo:非正规渠道的加密货币交易是一大问题:金色财经现场报道,12月16日,由ChainUP主办,节点资本等联合主办的“Future BlockChain”全球行活动在韩国举办。Ether Lab CEO Kim Kyung Soo在演讲中表示,现在韩国的所有加密货币交易所中只有头部的几家交易所可以通过正常途径用法币交易,其他所有的加密货币交易所都是通过非正规的账号渠道在进行法币交易,这是一个非常大的问题。他说,尽管有韩国国会议员提出让政府出台加密货币相关的指南,但是从政府态度来看,明年出台相关政策可能性也不大。[2018/12/16]
动态 | Kinit推出IOS版:据btcmanager消息,近日软件商KiK宣布旗下的消息应用软件Kinit已推出IOS版本。Kinit是一款消息传递软件,它允许用户通过使用其服务来赚取数字货币。[2018/8/25]
如下图所示,黑客可通过调用withdraw或者withdrawAll函数将指定pid池子中的抵押数量提现,从而使得user.amount为0,进而该地址可以在再次deposit抵押的时候通过相应检查进入investor列表,从而在updatePool函数中对黑客investor地址进行重复遍历并且增加多次抵押奖励,使得抵押奖励分配不均,影响到其他用户的抵押挖矿收益。
通过查看项目github发现,KingDefi项目方当前已对该问题进行了修改。漏洞修复
那么项目方如何修复该漏洞?查看项目的github地址(https://github.com/kingdefi/Krown-Contracts/tree/main/Farm),发现其在18个小时前曾更新过代码,对比一下更新代码。
发现项目方已经删除了用于存储用户地址的数组,改为了rewardsPerShare变量,该变量表示单位抵押代币所对应的奖励代币;同时项目方也更改了奖励的计算方式(updatePool函数):由原来循环所有用户地址来按比例分配奖励改为更新rewardsPerShare变量来计算用户奖励代币。
对比两种奖励方式,后者已经不会产生前者因为重复计算奖励的问题,这种奖励方式类似于sushiswap的奖励计算方式,同时也避免了前者因为循环次数太多导致的gas销毁过大的问题。漏洞总结
Kingdefi这次的漏洞影响到的是用户的奖励代币数量,攻击者可不断抵押提取来提高自身奖励的分配数量,但是用户的抵押代币是不受任何影响,可以正确安全提取出来。从项目方的修复结果来看,其换了一种常规奖励计算方式,该方式符合抵押挖矿逻辑,用户可正常且正确提取抵押和奖励代币。在此提醒广大项目方,在上线Defi挖矿项目前一定要做好代码审计,不同的计算方式在吸引新用户的同时也会大大增加犯错的风险!i
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。