又现套利攻击!—Goldfinch项目的SeniorPool合约遭受攻击事件分析
2022-06-2816:55:30
2022年6月28日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Goldfinch项目的SeniorPool合约遭受攻击,攻击者累计获利金额为28,523个USDC,项目方累计损失541,158个USDC。成都链安安全团队对此事件进行了分析,现与大家分享。
Azuki Elemental Beans完成销售,共计5,862个地址持有:6月28日消息,NFT项目Azuki新系列Elemental Beans完成预售,链上数据显示共计5862个地址获得,并没有余量进行公售。
此前Azuki发推称,将推出Azuki Elementals系列NFT,总量20,000枚;每个Azuki都被空投一个未开图且被锁定的Elemental Bean,剩余NFT将在Azuki Elementals预售期间出售;其中Azuki持有者参与第一轮预售,余量留给BEANZ持有者,两轮预售后普通玩家可参与公售,以荷兰拍形式进行,起始价2ETH。[2023/6/28 22:04:04]
#攻击过程
新的集体诉讼指控Silvergate Bank“协助和教唆”SBF和FTX的欺诈计划:2月15日消息,加密银行Silvergate Bank及其首席执行官Alan Lane在一项新提出的集体诉讼中被指控“协助和教唆”“由Sam Bankman-Fried(SBF)及其两家实体FTX和Alameda Research策划的数十亿美元的欺诈计划”。
2月14日,代表旧金山FTX用户的律师在加州北区联邦地方法院提起了集体诉讼,该用户和所有其他FTX客户一样,在去年交易所倒闭时被冻结了约2万美元的加密货币。原告Soham Bhatia声称Silvergate Bank、其母公司Silvergate Capital Corporation和首席执行官Alan Lane知道Alameda Research使用FTX客户资金,并指控他们向客户隐瞒“FTX的真实性质”。(Cointelegraph)[2023/2/15 12:08:10]
攻击交易地址:
安全团队:New free dao攻击者利用闪电贷反复领取空投奖励,获利约4481枚WBNB:9月8日消息,据Beosin EagleEye平台监测显示,New free dao项目遭受黑客攻击,损失约4481.3 WBNB(约125万美元)。Beosin安全团队分析发现攻击者首先利用闪电贷借出WBNB,将其全部换成NFD代币。然后利用攻击合约反复创建多个攻击合约领取(0x8b068e22e9a4a9bca3c321e0ec428abf32691d1e)空投奖励,最后将其兑换为WBNB归还闪电贷套利离场。目前攻击者已将获利的 2000BNB 兑换成55.6w USDT,将其与剩余的2,481BNB均存在攻击者地址上。Beosin trace正在对被盗资金进行实时监控和追踪。[2022/9/8 13:16:48]
0xd56d801e07df9d8457973c3938f5d3e6343ec1ed11f4ebb76bc3f5cc73001707
Optimism上锁仓额较7日前增加85% 创新高:金色财经消息,据L2Beat数据显示,Optimism上锁仓额较7天前增加约85.27%,目前约为9.08亿美元,不过OP代币占据锁仓额的近30%。另外,Optimism网络交易笔数也在6月1日达到历史新高,为超48万笔,当日新地址数达近4万个。Optimism还在今日更新称,自从去年实现EVM等效性以来,Optimism上交易正式突破了1000万笔。[2022/6/3 3:59:30]
攻击者地址:
0x86c595d81c8ab46d893065c3c674da72555fe7c0
攻击者合约:
0x541143d5eb30563a478eea23866e203b7c38c1ca
本次攻击存在多笔,我们选取了具体的一笔攻击交易进行分析:
1.?第一步:攻击者通过UniswapV3的DAI-USDC池子闪电贷借出110,000个USDC代币。
2.?第二步攻击者再把110,000个USDC代币从Curve的FIDU-USDC池子兑换出106,667个FIDU代币。
3.?第三步攻击者利用SeniorPool合约的withdrawInFidu函数,把106,667个FIDU代币兑换成113,853个USDC,然后归还闪电贷110,011个USDC,剩余本次攻击获利的3,842个USDC。
漏洞原因为:攻击者可以利用Curve的FIDU-USDC池子获取FIDU代币,来获取SeniorPool合约抵押USDC代币的红利。
目前Curve中FIDU兑换USDC为1:1.03,而在SeniorPool中的比例为1:1.07,这就产生了套利空间。
图1?Curve中FIDU兑换USDC的比例
图2?SeniorPool合约中FIDU兑换USDC的比例
下面是具体的代码实现:
攻击者利用withdrawInFidu函数销毁FIDU代币换取USDC。而可获取USDC的数量是通过_getUSDCAmountFromShares函数中的sharePrice去计算的。这里的sharePrice会随着分红的增加而增加,攻击者就可以利用Curve的FIDU-USDC池子获取FIDU代币,从而获取SeniorPool合约抵押FIDU代币的红利。
总结
针对本次事件,成都链安安全团队建议:
项目方使用新的代币代替FIDU代币为凭据代币,并确保其他途径无法获取该凭据代币。此外建议项目上线前选择专业的安全审计公司进行全面的安全审计,规避安全风险。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。