北京时间2022年5月16日凌晨4:22:49,CertiK安全技术团队监测到FEG在ETH和BNB链上遭受大规模闪电贷攻击,致使了价值约130万USD的资产损失。
此攻击是由“swapToSwap()”函数中的一个漏洞导致的,该函数在未对传入参数进行筛查验证的状况下,直接将用户输入的 "path "作为受信赖方,允许未经验证的 "path "参数(地址)来用目前合约的资产。
因此,通过反复调用 "depositInternal() "和 "swapToSwap()",攻击者可获得无限制用目前合约资产的许可,从而盗取合约内的所有资产。
受影响的合约地址之1、https://bscscan.com/address/0x818e2022dd7d9bf4547aaabf6b617c1262578bc7
漏洞买卖
漏洞地址: 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代币,缘由如下:
每次 "depositInternal() "被调用,_balance2[msg.sender]将增加约114 fBNB。
每次"swapToSwap()"被调用,攻击者所创建合约能获得该114 fBNB的用权限。
⑥因为攻击者控制了10个地址,每一个地址均可从目前地址花费114个fBNB,因此攻击者可以盗取被攻击合约内的所有fBNB。
⑦ 攻击者重复步骤④⑤⑥,在合约内耗尽FEG代币。
⑧ 最后攻击者供应了所有耗尽的资产,并偿还闪电贷款,最后获得了其余收益。
资产去向
截至2022年5月16日6:43,失窃资金仍存储在ETH和BSC链上的攻击者钱包(0x73b359d5da488eb2e97990619976f2f004e9ff7c)中。
原始资金来自ETH和BSC的Tornado cash:https://etherscan.io/tx/0x0ff1b86c9e8618a088f8818db7d09830eaec42b82974986c855b207d1771fdbe
https://bscscan.com/tx/0x5bbf7793f30d568c40aa86802d63154f837e781d0b0965386ed9ac69a16eb6ab
攻击者攻击了13个FEGexPRO合约,以下为概览: