freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

零时科技 | CloberDEX 攻击事件分析
2024-12-25 16:49:31
所属地 陕西省

背景介绍

近期,我们监控到一起针对 Base 上的项目 CloberDEX的链上攻击事件,

https://basescan.org/tx/0x8fcdfcded45100437ff94801090355f2f689941dca75de9a702e01670f361c04

被攻击的项目为 CloberDEX ,攻击者通过此次攻击获利约为 133 ETH ,约为 500,000 USD 。该项目的主要功能如下:open 开一个新交易池包含 A 到 B 和 B 到 A 的交易对,同样每个交易对包含预设的交易策略;mint 为给交易对添加流动性并获得 LP Token ;burn 为销毁 LP Token 获得对应的货币。

攻击及事件分析

首先,攻击者从 Morpho Blue 中利用 flashloan 借贷了267个WETH,

1735116289_676bc601e6f7ec1017de3.png!small?1735116289588

接着,攻击者使用 open 在 CloberDEX 开了两个交易对分别是 Token/WETH 和 WETH/Token ,其中, Token 为攻击者自行部署的合约。

1735116301_676bc60dd93c2ce4d8b53.png!small?1735116308616

然后,攻击者利用 mint 分别向刚开的交易对中转入 267 WETH 和 267 Token ,用于添加流动性并获取 LP Token。

1735116318_676bc61ea1baeb1e469ff.png!small?1735116318613

至此,都没问题。最后,攻击者利用 burn 销毁刚获得的LP Token,我们看一下 burn 的具体实现;

1735116330_676bc62a25ba128f60ec5.png!small?1735116330012

控制流走向了 lock 函数,同样,我们看一下 lock 的具体实现;

1735116343_676bc637a1b41594e68d1.png!small?1735116343738

可以看到,lock 函数中又把 bytes caldata data 传向了 lockAcquired 函数,我们继续看该函数的实现;

1735116356_676bc6448015825749833.png!small?1735116356613

我们发现这行代码

1735116370_676bc6524bcfee4ec7a71.png!small?1735116370043

我们可以看到,该代码调用的函数由 data 决定。那么 data 的前四字节此时为 _burn 的签名,所以本质上 burn 调用了 _burn 。

1735116380_676bc65c9429ed7db8e9b.png!small?1735116380464

我们可以看到, _burn 又调用了 pool.strategy.burnHook(msg.sender, key, burnAmount,supply) ,而且,针对 pool 的 reserver 的处理又在该代码之后。所以,问题出现在这里,交易对对应的 pool 的 strategy 合约的地址可以由攻击者控制。在此次攻击中,攻击者将该地址写为自己的攻击合约地址即:0x32fb1bedd95bf78ca2c6943ae5aeaeaafc0d97c1

当合约流程走到了攻击合约的 BurnHook 中后,又继续调用 burn 完成重入攻击。

1735116394_676bc66aac575a41f997c.png!small?1735116394451

攻击者通过该漏洞取出了投入的 264 个 WETH 和 CloberDEX 合约中的 133 个 WETH ,在归还flashloan 的贷款后获利 133.7 ETH ,约为 500,000 USD 。

总结

本次漏洞成因主要是因为 CloberDEX 项目方合约在获取销毁 LP Token 的代码中没有进行重入检测和防护,且更新状态变量在合约调用之后,最终导致攻击者利用该重入漏洞掏空项目方的WETH 。建议项目方在设计经济模型、价格计算机制和代码运行逻辑时要多方验证,合约上线前审计时尽量选择多个审计公司交叉审计。

# 黑客攻击 # 安全事件 # web3安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录