23

成都链安:YFV勒索事件分析

 4 years ago
source link: https://www.jinse.com/blockchain/796701.html
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

YFV是基于以太坊的一个DeFi项目,今天早些时候,YFV官方发文称遭到勒索。攻击者利用staking的合约漏洞,可以任意重置用户锁定的YFV。

euAveui.jpg!mobile

并表示,此次事件可能和不久前的“pool 0”事件相关,勒索者极有可能是在“pool 0”事件中未取回资金的“愤怒的农民”。

漏洞分析

合约存在一个stakeOnBehalf函数使得攻击者可以为任意用户进行抵押,如下图所示:

iAj22if.jpg!mobile

此函数中的 lastStakeTimes[stakeFor] = block.timestamp; 语句会更新用户地址映射的laseStakeTimes[user]。而用户取出抵押所用的函数中又存在验证,要求用户取出时间必须大于lastStakeTimes[account]+72小时。如下图所示:

mqY3mmQ.jpg!mobile

UnfrozenStakeTime如下图所示:

JZvEvea.jpg!mobile

综上所述,恶意用户可以向正常用户抵押小额的资金,从而锁定正常用户的资金。

根据链上信息,我们找到了两笔疑似攻击的交易,如下所示:

0xf8e155b3cb70c91c70963daaaf5041dee40877b3ce80e0cbd3abfc267da03fc9

0x8ae5e5b4f5a026bc27685f2b8cbf94e9e2c572f4905fcff1e263df24252965db

其中一笔如下图所示:

f2eANjj.jpg!mobile

此两笔交易都来自同一地址,且均为极小值。由此我们可以基本判定这是一个 测试锁死问题的交易

总结

针对于本次事件,究其根本原因,还是没有做好上线前的代码审计工作。本次事件实际上是属于 业务层面上的漏洞

根据成都链安在代码审计方面的经验,个别项目方在进行代码审计时,未提供完整的项目相关资料,使得代码审计无法发现一些业务漏洞,导致上线后损失惨重。

成都链安·安全实验室在此提醒各项目方:安全是发展的基石,做好代码审计是上线的前提条件。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK