原文来源:Beosin
2023?年?4?月?26?日,据?Beosin-EagleEye?态势感知平台消息,MerlinDex?发生安全事件,USDC-WETH?流动性池的资金已全部被提取,攻击者获利共约?180?万美金。据了解,MerlinDex是一个去中心化交易所,关于本次安全事件,Beosin?安全团队第一时间对事件进行了分析,结果如下。
事件相关信息
我们以其中一笔交易为例进行分析
攻击交易
Beosin:CS (CS)token遭受到攻击,损失金额截至目前约71.4万美元:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,2023年5月24日,bsc上链的CS(CS)代币项目遭受攻击。原因是代币的_transfer函数中sellAmount没有及时更新。Beosin安全团队将简析分享如下:
1、攻击者利用闪电贷借入BSC-USD兑换成CS代币。
2、攻击者开始卖出3000 CS代币,这一步会设置sellAmount。
3、攻击者通过给自己转账,会触发sync(),在这个函数中使用了上一步的sellAmount并且这个函数会销毁pair的中CS代币数量。Sync后sellAmount会置为0。重复2,3步持续减少pair中的CS代币数量,拉升CS代币的价格,使得后续一步可以兑换出更多的BSC-USD。
借入80,000,000 BSC-USD,兑换出80,954,000 BSC-USD,偿还80,240,000 BSC-USD,获利约714,000 BSC-USD。[2023/5/24 15:22:35]
0xf21bedfb0e40bc4e98fd89d6b2bdaf82f0c452039452ca71f2cac9d8fea29ab2
Beosin:SnarkJS 0.6.11及之前的版本中存在严重漏洞:金色财经报道,Beosin 安全研究人员在 SnarkJS 0.6.11及之前的版本的库中发现了一个严重漏洞,SnarkJS 是一款用于构建零知识证明的开源 JavaScript 库,广泛应用于 zk-SNARK 技术的实现和优化。Beosin在提了这个漏洞以后,第一时间联系项目方并协助修复,目前该漏洞还处于修复测试中。Beosin提醒所有使用了SnarkJS库的项目方,在SnarkJS 库这个漏洞还没完全修复时,一定要注意安全风险。[2023/5/18 15:11:20]
攻击者地址
Beosin:黑地址FTX Accounts Drainer已对大额资产进行兑换转移跨链等操作:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,截止2022年11月15日,黑地址FTX Accounts Drainer(0x59AB...32b)已对大额资产进行兑换转移跨链等操作。
目前大部分资金位于账户FTX Accounts Drainer的ETH平台,约228,523 个ETH($288,934,108)和8,184 个PAXG($14,395,174)。BSC平台约108,454 个BNB($29,962,644) 和1,685,309 个DAI($1,686,562) 。
其他部分资金位于ETH上的FTX Accounts Drainer 2账户上,约1999.4 个PAXG($3,516,404),FTX Accounts Drainer 3账户上约499 个PAXG($878,114),FTX Accounts Drainer 4账户上约499 个PAXG($878,114),其它链上的资产目前尚无异动,Beosin Trace将持续对黑地址异动进行监控。[2022/11/16 13:09:37]
0xc0D6987d10430292A3ca994dd7A31E461eb28182
0x2744d62a1e9ab975f4d77fe52e16206464ea79b7
被攻击合约
0x82cf66e9a45Df1CD3837cF623F7E73C1Ae6DFf1e
攻击流程
1.第一步,池子创建者(0xc0D6987d10430292A3ca994dd7A31E461eb28182)创建了工厂合约,在初始化时?Feeto?地址已经被设为(0xc0D6987d10430292A3ca994dd7A31E461eb28182)。
2.攻击者通过工厂合约部署?USDC-WETH?池子,池子初始化时便将池子中的?USDC?和?WETH?最大化授权给了合约工厂的?Feeto?地址,可以看到这存在明显的中心化风险。
3.于是在有了最大授权的情况下,攻击者转走了该池子中的所有代币。
4.值得注意的是,在攻击发生之前,工厂合约的?Owner?和?Feeto?地址曾有过改动,但这一步并不是攻击所必须的,猜测可能是攻击者为了迷惑他人所做的操作。
最后可以看到?USDC-WETH?流动性池的资金已全部被提取,攻击者获利共约?180?万美金。
漏洞分析
Beosin?安全团队分析本次攻击主要利用了pair?合约的中心化问题,在初始化时最大化授权了工厂合约中的?Feeto?地址,而导致池子中的资金随时可能被初始化时设定的?Feeto?地址提取走。
资金追踪
攻击者调用了?transferFrom?函数从池子转出了?811?K?的?USDC?给攻击者地址?1?。攻击者地址?2?从?token?1?合约提取了?435.2?的?eth,通过?Anyswap?跨链后转到以太坊地址和地址上,共获利约?180?万美元。
截止发文时,BeosinKYT?反分析平台发现目前被盗资金仍存放在上述攻击者的两个以太坊主网地址上,Beosin?安全团队将持续对被盗资金进行监追踪。
总结
针对本次事件,Beosin?安全团队建议,项目方应该使用多签钱包或DAO治理来管理具有重要权限的地址,用户在进行项目交互时也要多多了解此项目是否涉及风险。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。