2022-05-18 02:41 | 出处: odaily
北京时间2022年5月16日凌晨4:22:49,CertiK安全技术团队监测到FEG在以太坊和BNB链上遭受大规模闪电贷攻击,导致了价值约130万美元的资产损失。
此攻击是由“swapToSwap()”函数中的一个漏洞造成的,该函数在未对传入参数进行筛查验证的情况下,直接将用户输入的 "path "作为受信任方,允许未经验证的 "path "参数(地址)来使用当前合约的资产。
因此,通过反复调用 "depositInternal() "和 "swapToSwap()",攻击者可获得无限制使用当前合约资产的许可,从而盗取合约内的所有资产。
受影响的合约地址之一:https://bscscan.com/address/0 x818e2013dd7d9bf4547aaabf6b617c1262578bc7
③攻击者通过调用 "depositInternal() "将fBNB存入合约FEGexPRO。
根据当前地址的余额,"_balances2[msg.sender]"被增加。
④ 攻击者调用了 "swapToSwap()",路径参数是之前创建的合约地址。
该函数允许 "path "获取FEGexPRO合约的114 fBNB。
⑤ 攻击者反复调用 "depositInternal() "和 "swapToSwap()"(步骤③和④),允许多个地址(在步骤②中创建)获取fBNB代币,原因如下:
每次 "depositInternal() "被调用,_balance2[msg.sender]将增加约114 fBNB。
每次"swapToSwap()"被调用,攻击者所创建合约能获取该114 fBNB的使用权限。
⑥ 由于攻击者控制了10个地址,每个地址均可从当前地址花费114个fBNB,因此攻击者能够盗取被攻击合约内的所有fBNB。
⑦ 攻击者重复步骤④⑤⑥,在合约内耗尽FEG代币。
⑧ 最后攻击者出售了所有耗尽的资产,并偿还闪电贷款,最终获取了其余利润。
原始资金来自以太坊和BSC的Tornado cash:https://etherscan.io/tx/0 x0ff1b86c9e8618a088f8818db7d09830eaec42b82974986c855b207d1771fdbe
https://bscscan.com/tx/0 x5bbf7793f30d568c40aa86802d63154f837e781d0b0965386ed9ac69a16eb6ab
攻击者攻击了13个FEGexPRO合约,以下为概览: