FEG在以太坊和BNB链上遭受大规模闪电贷攻击,导致了价值约130万美元的资产损失。
北京时间2022年5月16日凌晨4:22:49,CertiK安全技术团队监测到FEG在以太坊和BNB链上遭受大规模闪电贷攻击,导致了价值约130万美元的资产损失。
此攻击是由“swapToSwap()”函数中的一个漏洞造成的,该函数在未对传入参数进行筛查验证的情况下,直接将用户输入的 "path "作为受信任方,允许未经验证的 "path "参数(地址)来使用当前合约的资产。
因此,通过反复调用 "depositInternal() "和 "swapToSwap()",攻击者可获得无限制使用当前合约资产的许可,从而盗取合约内的所有资产。
受影响的合约地址之一:https://bscscan.com/address/0x818e2013dd7d9bf4547aaabf6b617c1262578bc7
漏洞交易
漏洞地址: https://bscscan.com/address/0x73b359d5da488eb2e97990619976f2f004e9ff7c 漏洞交易样本:https://bscscan.com/tx/0x77cf448ceaf8f66e06d1537ef83218725670d3a509583ea0d161533fda56c063
被盗资金追踪:https://debank.com/profile/0x73b359d5da488eb2e97990619976f2f004e9ff7c/history
相关地址
攻击者地址:https://bscscan.com/address/0x73b359d5da488eb2e97990619976f2f004e9ff7c攻击者合约:https://bscscan.com/address/0x9a843bb125a3c03f496cb44653741f2cef82f445
FEG代币地址:https://bscscan.com/token/0xacfc95585d80ab62f67a14c566c1b7a49fe91167
FEG Wrapped BNB(fBNB): https://bscscan.com/address/0x87b1acce6a1958e522233a737313c086551a5c76#code
攻击步骤
以下攻击流程基于该漏洞交易:https://bscscan.com/tx/0x77cf448ceaf8f66e06d1537ef83218725670d3a509583ea0d161533fda56c063① 攻击者借贷915 WBNB,并将其中116 BNB存入fBNB。
② 攻击者创建了10个地址,以便在后续攻击中使用。
③攻击者通过调用 "depositInternal() "将fBNB存入合约FEGexPRO。根据当前地址的余额,"_balances2[msg.sender]"被增加。
④ 攻击者调用了 "swapToSwap()",路径参数是之前创建的合约地址。
该函数允许 "path "获取FEGexPRO合约的114 fBNB。
⑤ 攻击者反复调用 "depositInternal() "和 "swapToSwap()"(步骤③和④),允许多个地址(在步骤②中创建)获取fBNB代币,原因如下:
⑥ 由于攻击者控制了10个地址,每个地址均可从当前地址花费114个fBNB,因此攻击者能够盗取被攻击合约内的所有fBNB。
⑦ 攻击者重复步骤④⑤⑥,在合约内耗尽FEG代币。
⑧ 最后攻击者出售了所有耗尽的资产,并偿还闪电贷款,最终获取了其余利润。
资产去向
截至2022年5月16日6:43,被盗资金仍存储在以太坊和BSC链上的攻击者钱包(0x73b359d5da488eb2e97990619976f2f004e9ff7c)中。原始资金来自以太坊和BSC的Tornado cash:https://etherscan.io/tx/0x0ff1b86c9e8618a088f8818db7d09830eaec42b82974986c855b207d1771fdbe
https://bscscan.com/tx/0x5bbf7793f30d568c40aa86802d63154f837e781d0b0965386ed9ac69a16eb6ab
攻击者攻击了13个FEGexPRO合约,以下为概览:
写在最后
本次攻击事件本可通过安全审计来有效地避免。
CertiK安全专家认为审计过程中可以检查出该风险——不受信任的 "path "参数被传递到协议中,并获取合约资产支出的权限。审计专家会将该风险归类于主要风险级别,此外,如果进行更深层次的挖掘,还可列明被利用的多种可能。