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

前?

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

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

简述攻击流程

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

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

Ether Capital Q2收入146万美元,持有数字资产1.18亿美元:金色财经报道,Ether Capital Corporation报告截至6月的三个月和六个月未经审计的中期合并财务业绩。该公司2023年第二季度的收入为146万美元,而2022年第二季度的收入为108万美元,增长了35%。截至2023年6月30日,公司持有的数字资产总价值为1.18亿美元,而2022年12月31日为7,310万美元,六个月内增长了61%。

2023年第二季度的质押以太坊奖励总收入为122万美元,而2022年第二季度为69万美元。在截至6月30日的六个月期间,2023年质押以太坊奖励收入为215万美元,而2022年为1.41美元。[2023/8/13 16:22:41]

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

UniSat Marketplace停机维护两小时:5月14日消息,据官方消息,BRC-20 交易市场 UniSat Marketplace 于北京时间 5 月 14 日 14 时 30 分至 16 时 30 分停机维护两小时,以执行必要的升级和修复。[2023/5/14 15:01:56]

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

去中心化社交协议Farcaster v2版本已完成从Rinkeby到G?rli的合约迁移:9月25日消息,去中心化社交协议Farcaster的v2版本智能合约已从Rinkeby迁移到G?rli,用户名现在是ERC-721形式且具备可组合性。[2022/9/25 7:20:08]

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

漏洞成因分析

检查源码后发现具体问题主要出在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:15ms0-0:724ms