freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

Zenterest 攻击事件分析
2024-08-22 10:16:12

背景介绍

近期,我们监控到一起针对 Ethereum 的链上攻击事件,https://etherscan.io/tx/0xfe8bc757d87e97a5471378c90d390df47e1b29bb9fca918b94acd8ecfaadc598

被攻击的项目为 Mantra DAO 的 DeFi 项目 Zenterest

该项目是一个 Compound Fork 的项目,提供借贷等功能,不过该项目已经关闭。

1724292117_66c69c1567805102bc351.png!small?1724292117619


攻击及事件分析

首先,攻击者利用 Uniswap V3 通过 flash ,借入了 85.0085 WHITE

1724292144_66c69c30e7a59a00c6483.png!small?1724292145051

随后,攻击者将自己的2 000 MPH 转给了Zenterest,并 mint 了 751,165,762,743 / 1e18zenMPH ,即 MPH Token 的 underlying Token (价值 21200 MPH )。

1724292496_66c69d90df896b26512a7.png!small?1724292497028

在 Compound 中, mintTokenAmount 为 mintAmount 除以exchangeRate(为underlying Token的价值)

1724292507_66c69d9b426c5a11a06ff.png!small?1724292507277

exchageRate 的计算方式为

1724292522_66c69daab524f0002d135.png!small?1724292522733

其中, totalCash为 2,130,237,755,166,997,669,234 ,

totalBorrows为377,279,871,321,643,951,514,656 ,

totalReserves为336,296,661,332,642,353,710,274 ,

totalSupply为 1,527,610,653,739 。

故 exchangeRate 为 28,222,798,550.562313 。

1724292535_66c69db7178c65396e67a.png!small?1724292535238

所以, mintToken 为 751,165,762,743 。

1724292547_66c69dc36c941d7ef40da.png!small?1724292547483

1724292560_66c69dd03e36fc173bf40.png!small?1724292560373

接着,攻击者将从 Uniswap 中 flash 闪电贷获得的 85 WHITE Token 转给了 Zenterest。

1724292570_66c69ddab3672bf0daff3.png!small?1724292570866

这里,攻击者是为了操纵 zenWHITE 的 borrowRate ,否则导致 borrowRate 过高,导致攻击失败。

1724292579_66c69de33b6f74d4f1292.png!small?1724292579385

然后,攻击者利用 cToken 的 borrow 借出 zenWHITE 的所有余额。

1724292607_66c69dff42aeb6a2a2da0.png!small?1724292608482

漏洞点就出现在 ZenterestPriceFeed 价格预言机上,

1724292616_66c69e08abf314bf3f4fe.png!small?1724292617039

我们可以看到 ZenterestPriceFeed 的代码如下:

1724292625_66c69e1150afebfe0a51b.png!small?1724292625382

其价格是通过 updatePrice 和 updatePriceBatch 来更新的。

1724292636_66c69e1cc67fe24c74bf4.png!small?1724292636843

我们可以看到,此价格预言机中的价格已经570天没有更新,所有价格均已过期,我们找到最近一次更新 MPH Token 价格的交易如下:

1724292646_66c69e261a2f9247e5adb.png!small?1724292646382

最近的更新 MPH Token 价格的交易为:https://etherscan.io/tx/0x8938ec223516e0f09d904ee6187032f2038f3f768d754eb19b4f19450e7d185d

1724292663_66c69e37bebba85420e6c.png!small?1724292663914

其价格更新参数的数据结构为:

1724292672_66c69e409e33f984506f2.png!small?1724292672620

所以,通过 Zenterest Price Oracle 获取的 MPH Token 的价格为 0x35b52f953f951 =944,836,858,607,953 ,而当前实际的价格为 0.4677 USD 。

1724292686_66c69e4ebe96516f93bf7.png!small?1724292686924

同时,我们可以看到获取的 WHITE Token 的价格为 66,570,137,662,599,764 ,而当前实际的价格为 4200 USD 。

攻击者投入 23200 MPH ,借贷 89.91 WHITE ,根据 Zenterest Price Oracle 获取的价格计算,

1724292697_66c69e59676c37e8f9bb5.png!small?1724292697511

所以,攻击者可以借出 89.91 WHITE ,攻击者归还从 Uniswap 借到的 85 WHITE 和 0.0085 WHITE利息,最终获利 4.9 WHITE ,价值 21000 USD 。

总结

本次漏洞的成因是项目已经不再使用,但是 cToken 却没有暂停,且价格预言机的价格没有更新,导致标的资产价格失真,攻击者利用失真的价格来通过借贷进行获利,最终导致攻击者用极少的 MPH 掏空了项目方的 WHITE 代币。

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