又现套利攻击:Goldfinch项目的SeniorPool合约遭受攻击事件分析

fffmCQ.jpg

又现套利攻击!—Goldfinch项目的SeniorPool合约遭受攻击事件分析

2022-06-28 16:55:30

2022年6月28日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Goldfinch项目的SeniorPool合约遭受攻击,攻击者累计获利金额为28,523个USDC,项目方累计损失541,158个USDC。成都链安安全团队对此事件进行了分析,现与大家分享。

mECqkahciBNWZaEukffObFx0Gd3VjdG9IFZlIa5s.png

#攻击过程

攻击交易地址:

0xd56d801e07df9d8457973c3938f5d3e6343ec1ed11f4ebb76bc3f5cc73001707

攻击者地址:

0x86c595d81c8ab46d893065c3c674da72555fe7c0

攻击者合约:

0x541143d5eb30563a478eea23866e203b7c38c1ca

本次攻击存在多笔,我们选取了具体的一笔攻击交易进行分析:

1. 第一步:攻击者通过Uniswap V3的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,这就产生了套利空间。

HgjJnv8P9H9XGcri9Rttnk33t7L03CI7JwMWvkAL.png

图 1 Curve中FIDU兑换USDC的比例

8OPr69tczIR6qlSqxFImJYvjdIde7egt2MJRZzvH.png

图 2 SeniorPool合约中FIDU兑换USDC的比例

下面是具体的代码实现:

攻击者利用withdrawInFidu函数销毁FIDU代币换取USDC。而可获取USDC的数量是通过_getUSDCAmountFromShares函数中的sharePrice去计算的。这里的sharePrice会随着分红的增加而增加,攻击者就可以利用Curve的FIDU-USDC池子获取FIDU代币,从而获取SeniorPool合约抵押FIDU代币的红利。

jgeDuyB5HF9HTXHLPnGvO5q7AmrwYK312oQYDpln.png

总结

针对本次事件,成都链安安全团队建议:

项目方使用新的代币代替FIDU代币为凭据代币,并确保其他途径无法获取该凭据代币。此外建议项目上线前选择专业的安全审计公司进行全面的安全审计,规避安全风险。

声明:该文观点仅代表作者本人,与炒币网无关。炒币网系信息发布平台,仅提供信息存储空间服务。对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,并不对文章观点负责。 提示:投资有风险,入市须谨慎。本资讯仅供参阅,不作为投资理财建议。

发表评论

登录后才能评论