首发 | Text.finance智能合约安全漏洞分析_SAN:EWIT

北京时间11月12日,CertiK安全研究团队发现DeFi项目text.finance智能合约代码部分存在安全漏洞。

分析之前,先考考大家的眼力,看看下图里面的文字说了什么。

如果看不清,不妨点击图片后把屏幕亮度调至最高。

有的时候,某些不想让你看到的因素,正是通过排版或者这样的方式,被刻意隐藏了起来。

接下来说说该项目中存在的两处漏洞。大家不妨在阅读文章的时候注意一下图中的位置。

第一弹:项目拥有者可通过第一处漏洞,将指定数目代币转移到任意地址。

第二弹:项目拥有者可通过第二处漏洞,将任意投资者的流动性池中的资产强制转移到项目拥有者的地址中。

LBank蓝贝壳于4月9日16:50首发 BOSON:据官方公告,4月9日16:50,LBank蓝贝壳首发BOSON(Boson Protocol),开放USDT交易,4月9日16:00开放充值,4月12日16:00开放提现。上线同一时间开启充值交易BOSON瓜分10,000 USDT。

LBank蓝贝壳于4月9日16:50开启充值交易BOSON瓜分10,000 USDT。用户净充值数量不少于1枚BOSON ,可按净充值量获得等值1%的BOSON的USDT空投奖励;交易赛将根据用户的BOSON交易量进行排名,前30名可按个人交易量占比瓜分USDT。详情请点击官方公告。[2021/4/9 20:02:26]

漏洞分析

首发 | 火币集团全球业务副总裁:监管将决定区块链技术和加密货币的落地速度:1月21日,火币集团全球业务副总裁Ciara Sun在达沃斯世界经济论坛上表示,对区块链和数字货币的监管态度,2019年是重要的一年。在美国,到2019年底,针对加密货币和区块链政策有21项法案,这些法案包括税收问题,监管结构,跟踪功能和ETF批准,哪些联邦机构监管数字资产等。欧盟(EU)在2020年1月10日实施了一项新法律,要求加密货币平台采取更严格的反做法。瑞士,日本,立陶宛,马耳他和墨西哥通过法律,要求交易所必须根据KYC和AML准则获得许可。中国,土耳其,泰国等国家正在计划自己的中央银行数字货币(CBDC)。而监管将决定区块链技术和加密货币的落地速度。[2020/1/22]

textMiner.sol

金色首发 EOS超级节点竞选投票率达6.49%:金色财经数据播报,截止北京时间6月13日15:50,EOS投票率达6.49%。EOS引力区和EOS佳能作为两个来自中国的超级节点竞选团队暂居第五和第六名。其中EOS引力区的得票总数为903万,占比2.96%;EOS佳能的得票总数为877万,占比2.87%。此前异军突起的EOSflytomars暂居第17位,得票总数为630万,占比2.07%。目前跻身前30名的超级节点竞选团队中,有八个团队来自中国。[2018/6/13]

部署地址:?

https://etherscan.io/address/0x9858728de38c914c2ea32484a113b6628d984a82#code

IMEOS首发 BM表示EOS合约具有整数溢出保护:据金色财经合作媒体IMEOS报道:近日ETH出现多个ERC20智能合约的处理溢出错误,BM在推特上发表评论:新的ETH契约Bug可能会破坏整个Token的供应,让持有者留下无价值Token.这就算为什么代码不能成为法律,随即表示EOS erc合约不容易受到这种攻击。而EOS官方群也有人表示担忧EOS是否具有整数溢出保护?BM回应:有很多C ++模板类可以封装类型并检查溢出。[2018/4/25]

1.漏洞一

项目拥有者在textMiner.sol智能合约1000行处实现了withUpdates()函数。该函数的的作用是可以将任意数量的为devaddr地址铸造任意数量的代币。而通过查看图2中devaddr和项目拥有者owner的地址值,可以发现两者相同,因此项目拥有者可以通过该漏洞为devaddr地址铸造任意数目代币。

同时,当前的devaddr地址拥有者可以通过图3的dev()函数将devaddr地址值更换到另外一个地址,因此最终项目拥有者可以更换将devaddr地址值更换的方法,向任意地址中铸造任意数目代币。

虽然项目拥有者将图1中的withUpdates()函数设置为不允许智能合约外部调用,但是却有意地在图4中919行实现了允许被外部调用的add()函数,然后通过921行代码调用withUpdates()函数,从而实现向devaddr地址铸造1000000000000000000000000000000数量代币。

图1:第1000行中的withUpdates()函数

图2:devaddr地址以及项目拥有者owner地址

图3:dev()函数

图4:add()函数

2.漏洞二

图5:emergencyWithdraw()函数

项目拥有者可以通过调用图5中emergencyWithdraw()函数,将某一个特定地址投资者的某一个流动性池中的流动性资产全部取出,并转移到项目拥有者的地址中。

该emergencyWithdraw()函数是一个基于正确的emergencyWithdraw()函数。因此就算审视合约者不恶意揣测,也很难说项目方不是恶意改写,并添加了该漏洞。

从下图6的对比中可以发现,Sushiswap允许投资者通过调用emergencyWithdraw()函数,紧急取出属于自己的流动性资产,而在text.finance中却仅允许项目拥有者来调用该函数,同时允许项目拥有者取出属于任何投资者的流动性资产。

图6:text.finance和sushiswap项目中emergencyWithdraw()函数实现对比

安全建议

CertiK安全研究团队认为当投资者在对DeFi项目进行投资时,不仅需要对智能合约常见的代码有所了解,更需要谨慎地审视具体代码的实现逻辑。否则极易掉入类似该项目中的恶意漏洞陷阱当中。

对于非技术背景的投资者,更需要了解项目是否经过严谨的技术审计。从Text.finance项目的恶意漏洞中可以看出,盲目投资一个没有经过严格审计的项目,或引发极大风险,并造成难以估量的损失。

CertiK是采用形式化验证工具来证明智能合约可靠性的业内顶尖公司。公司内部审计专家将利用包括形式化验证在内的多种软件测试方法,结合一流的白帽黑客团队提供专业渗透测试,从而确保项目从前端到智能合约整体的安全性。如你的项目需要保障,请发送邮件至或直接后台留言进行免费咨询及报价。于此同时,CertiK的新产品预言机及快速扫描,也将为链上项目进行实时打分并且出具快速扫描分数。

如果你需要查找某项目的信息及安全分数,请登录CertiKFoundation官网的CertiKShield页面进行浏览:https://shield.certik.foundation/

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

欧易okex官网薪火言币:11.13老生常谈的心态_Parsiq:ETH

当行情波动比较大时候,有盈利的有亏损的,想必找帖子的大多数多是亏损被套找解决的办法,大家的套单和心里的着急我也能理解,不过短时间内确实也难以解决,所以现在我也不跟大家写什么行情的走势分析了.

[0:15ms0-4:561ms