TOKE:Formation.Fi 闪电贷安全事件分析

前?

11月21日,知道创宇区块链安全实验室?监测到以太坊上的DeFi协议?Formation.Fi?遭遇黑客攻击,损失近10万美元。实验室第一时间跟踪本次事件并分析。

攻击流程及形成漏洞成因分析

简述攻击流程

首先黑客通过合约0xd02C进行闪电贷借出启动资金200USDT

向合约Vault质押100USDT获得99FormationUSD?

澳大利亚央行:未来CBDC或可供非居民及发行管辖区之外使用:金色财经报道,澳大利亚央行已发布对数字资产法案调查的意见书,该法案旨在规范加密货币交易所、托管服务和稳定币的发行。澳大利亚央行于5 月下旬提交的文件表示,澳洲联储看到了新货币形式的潜力,同时认识到他们需要一个强有力的监管框架。迄今为止,澳大利亚的稳定币活动相对有限,尽管未来稳定币有可能在金融体系中发挥更重要的作用,澳大利亚央行支持为稳定币制定监管安排,同时为投资者和用户提供适当的保障和保护,未来CBDC或可供非居民及发行管辖区之外使用。[2023/6/6 21:17:58]

通过Vault合约swapin函数置换100USDT并附带大量fee

全球最大的慈善基金之一惠康信托在第一季度出售Meta所有股份:金色财经报道,全球最大的慈善基金之一惠康信托(Wellcome Trust)在第一季度出售了其在 Meta Platforms 的所有股份,并削减了对苹果和微软股票的投资。(巴伦周刊)[2023/4/24 14:22:38]

调用Vault合约函数withdraw销毁99FormationUSD获得漏洞利润99999USDT

FTX前营销负责人:SBF此前一直谎称FTX没有动用客户资金:11月20日消息,FTX前营销负责人Nathaniel Whittemore近日在CoinDesk播客节目中表示,SBF此前反复承诺FTX没有动用客户资金,但“这是一个谎言”。

Whittemore表示,他和交易所的大多数其他员工都不知道有关FTX挪用客户资金的欺诈行为。员工们被蒙在鼓里,他们中的许多人(尤其是FTX的非美国员工)把交易所当成银行使用,不知道自己的积蓄被挥霍殆尽。

Whittemore说,币安放弃对FTX的救助后,“你可以想到普通FTX员工心情是多么的悲痛。那时,他们似乎不单单是可能失业,还可能面临所有积蓄化为乌有。”[2022/11/20 22:09:26]

最后归还闪电贷将获利转到黑客地址

漏洞成因分析

检查源码后发现具体问题主要出在Vault合约函数?swapIn?上,可以看到该函数调用参数?fee?能影响记录着全部代币的变量?totalTokens?的计算,fee越大totalTokens越大。

而在通过函数withdraw实际获取利润时,可以看到实际转账时totalTokens参与了计算,所以当大量的fee被带人totalTokens计算后,会造成withdraw函数的转账超过原本的转账金额。

而造成攻击获利巨大的另个原因是FormationUSD与USDT的小数点数位不同,FormationUSD为18位,USDT为6位。小数点精准数位的差距在实际转账中进一步放大了黑客的收益。

Vault:

TetherToken:

重新梳理攻击过程

第一步:选用USDT作为攻击使用的代币,目的USDT与FormationUSD的小数点精确度不同

第二步:黑客质押100USDT,目的为了后续调用withdraw函数实现套利

第三步:黑客兑换100USDT,目的添加大量的fee提升totalTokens的值

第四步:黑客取回质押的USDT,目的使用提升后totalTokens与利用代币间小数点精确度不同来套取利润

第五步:归还闪电贷,转移套取的利润

总结

本次闪电贷安全事件发生的主要原因在于项目方设计函数?swapIn?时低估了fee对totalTokens的影响,且忽视了不同代币间小数点精确度的影响。

知道创宇区块链安全实验室?再次提醒近期各链上频频爆发攻击事件,合约安全愈发需要得到迫切重视,合约审计、风控措施、应急计划等都有必要切实落实。

来源:金色财经

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

金星链

[0:46ms0-0:986ms