Beosin:zkSync生态DEX Merlin安全事件分析

本文约691字,阅读全文需要约1分钟
USDC-WETH流动性池的资金已全部被提取,攻击者获利共约180万美金。

原文来源:Beosin

2023 年 4 月 26 日,据 Beosin-Eagle Eye 态势感知平台消息,Merlin Dex 发生安全事件,USDC-WETH 流动性池的资金已全部被提取,攻击者获利共约 180 万美金。据了解,Merlin Dex 是一个去中心化交易所,关于本次安全事件,Beosin 安全团队第一时间对事件进行了分析,结果如下。

事件相关信息

我们以其中一笔交易为例进行分析

攻击交易

0xf21bedfb0e40bc4e98fd89d6b2bdaf82f0c452039452ca71f2cac9d8fea29ab2

攻击者地址

0xc0D6987d10430292A3ca994dd7A31E461eb28182

0x2744d62a1e9ab975f4d77fe52e16206464ea79b7

被攻击合约

0x82cf66e9a45Df1CD3837cF623F7E73C1Ae6DFf1e(USDC-WETH池子)

攻击流程

1.第一步,池子创建者(0xc0D6987d10430292A3ca994dd7A31E461eb28182)创建了工厂合约 (0x63E6fdAdb86Ea26f917496bEEEAEa4efb319229F),在初始化时 Feeto 地址已经被设为(0xc0D6987d10430292A3ca994dd7A31E461eb28182)

Beosin:zkSync生态DEX Merlin安全事件分析

2.攻击者通过工厂合约部署 USDC-WETH 池子(0x82cf66e9a45Df1CD3837cF623F7E73C1Ae6DFf1e),池子初始化时便将池子中的 USDC 和 WETH 最大化授权给了合约工厂的 Feeto 地址,可以看到这存在明显的中心化风险。

Beosin:zkSync生态DEX Merlin安全事件分析

3. 于是在有了最大授权的情况下,攻击者转走了该池子中的所有代币。

Beosin:zkSync生态DEX Merlin安全事件分析

4. 值得注意的是,在攻击发生之前,工厂合约的 Owner 和 Feeto 地址曾有过改动,但这一步并不是攻击所必须的,猜测可能是攻击者为了迷惑他人所做的操作。

Beosin:zkSync生态DEX Merlin安全事件分析

Beosin:zkSync生态DEX Merlin安全事件分析

最后可以看到 USDC-WETH 流动性池的资金已全部被提取,攻击者获利共约 180 万美金。

漏洞分析

Beosin 安全团队分析本次攻击主要利用了pair 合约的中心化问题,在初始化时最大化授权了工厂合约中的 Feeto 地址,而导致池子中的资金随时可能被初始化时设定的 Feeto 地址提取走。

资金追踪

攻击者调用了 transferFrom 函数从池子转出了 811 K 的 USDC 给攻击者地址 1 (0x2744d62a1e9ab975f4d77fe52e16206464ea79b7)。攻击者地址 2 (0xcE4ee0E01bb729C1c5d6D2327BB0F036fA2cE7E2)从 token 1 合约(WETH)提取了 435.2 的 eth,通过 Anyswap 跨链后转到以太坊地址(0xa7D481944730a88B862eB57248Cb1B2C8aa358Ad)和地址(0x0b8a3ef6307049aa0ff215720ab1fc885007393d)上,共获利约 180 万美元。

截止发文时,Beosin KYT 反洗钱分析平台发现目前被盗资金仍存放在上述攻击者的两个以太坊主网地址上,Beosin 安全团队将持续对被盗资金进行监追踪。

Beosin:zkSync生态DEX Merlin安全事件分析

Beosin:zkSync生态DEX Merlin安全事件分析

Beosin:zkSync生态DEX Merlin安全事件分析

总结

针对本次事件,Beosin 安全团队建议,项目方应该使用多签钱包DAO治理来管理具有重要权限的地址,用户在进行项目交互时也要多多了解此项目是否涉及风险。

原创文章,作者:星球君的朋友们。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选