DEFI - Rho Markets事件

  • Dedaub
  • 发布于 2024-09-06 10:17
  • 阅读 11

Rho Markets在Scroll上的Compound V2分叉版本由于ETH预言机配置错误,导致750万美元的坏账。MEV机器人利用此错误进行套利,但最终归还了资金。事件强调了严格审查部署程序的重要性,即使没有智能合约漏洞,也必须确保更新不会破坏协议的任何不变量。

YANNIS BOLLANOS

Rho Markets 事件

7 月 19 日,Rho Markets——Scroll 上的 Compound V2 分叉——遭遇了一起事件,导致产生了 750 万美元的坏账。漏洞的根本原因是 ETH 的 oracle 配置错误,即在初始化时将地址设置为了错误的 price feed,而不是代码中的 bug。价格错位很快被一个发现了机会的 MEV 机器人利用。

幸运的是,由于协议团队和 SEAL 911(我们也参与其中)之间的快速和协调努力,损失的资金已归还。话虽如此,事件背后 MEV 机器人运营商与协议合作并归还资金的意愿大大加快了恢复速度。

还可以阅读 Rho Markets 关于此事件的官方声明 [ tweet | blog],该声明很好地解释了导致资金损失的情况。

技术细节

错误配置

引用 Rho Markets 的事件报告:

这个问题是由于 ETH oracle price feed 错误地配置为了 BTC price feed 引起的。通常,此类设置会在实施任何更改之前进行验证。但是,由于在监督部署过程中的人为错误,在 oracle price 的情况下,遗漏了此验证检查。

PriceOracleV2 合约的链上错误配置发生在以下交易中:https://scrollscan.com/tx/0x9d2388a0c449c6265b968d86f0f54e75a5b82e2b04176e35eefdff5f135547ec#eventlog

Rho Markets Incident

从发出的事件可以看出,该交易的效果是错误地将 address(0) 处的 underlying asset 的 oracle 设置为 WBTC/USD 的 oracle。

Rho Markets Incident

在交易时,PirceOracleV2 合约内尚未设置 rWBTC token ( 0x1d7.. )的配置:

Rho Markets Incident

这也从一个事实可以明显看出,在区块 7580111 上的 oracle 更新之前和 rWBTC 在区块 7579842 上的部署 之后,都没有调用 PirceOracleV2setRTokenConfig 函数。

Rho Markets Incident

address(0) 处的资产的 oracle 设置为的问题是,如前所述,此地址代表 rETH (ETH) 的 underlying token [ rETH 的配置 ]

Rho Markets Incident

这是从 Compound 的语义继承的概念:

Rho Markets Incident

屏幕截图描述了 ETH 在 Compound 的 UniswapAnchoredView 合约中的配置——元组中的第二个地址是 underlying address

错误配置的后果

在这一点上,我们可以注意到 没有合约代码是脆弱的或被破坏的,因为价格 oracle 的 setter 按预期运行。

但是,仅此错误配置就足以实现 MEV 机器人利用的套利机会。由于所有 ETH collateral 都将以 WBTC 的价值定价——ETH 的实际价值增加了 20 倍——这使得该 bot 能够借入比正常情况下使用 ETH 作为 collateral 时更多的资金(这导致了坏账的产生)。

MEV 机器人执行了多个这样的交易:https://scrollscan.com/tx/0x0a7b4c6542eb8f37de788c8848324c0ae002919148a4426903b0fb4149f88f05

Rho Markets Incident

如人们所见,该 bot mint 了约 84 个 rETH

Rho Markets Incident

但它成功地借入了约 942 个 wstETH,然后将其兑换为 ETH

通过这种方法产生的坏账总额最终约为 750 万美元。

资金返还

与协议团队和 SEAL 911 建立的作战室迅速收集了有关攻击和 MEV 机器人运营商的信息。但是,该机器人运营商出于善意行事,并联系了协议团队以返还资金:

https://etherscan.io/tx/0xab7bc87fca7df222000b870fbe55750c33b3ea0461a8ba8a8ddbe530a1934248

https://scrollscan.com/tx/0xd9c2e4f0364b13ada759f2dd56b65f5025e70cce4373e7c57ac31bf5226023e0

Hello RHO team, our MEV bot have profited from your price oracle misconfiguration. We understand that the funds belong to users and are willing to fully return. But first we would like you to admit that it was not an exploit or a hack, but a misconfiguration on your end. Also, please provide what are you going to do to prevent it from happening again.
// 你好 RHO 团队,我们的 MEV 机器人从你们的价格 oracle 配置错误中获利。 我们理解这些资金属于用户,并且愿意完全归还。 但首先,我们希望你们承认这不是漏洞利用或黑客攻击,而是你们的配置错误。 另外,请提供你们将采取哪些措施来防止再次发生。

资金已成功返还至:https://scrollscan.com/tx/0x15da6af0207d82d27ca20a542dae1b81580ca1cbfee7028c312229968e356446

经验教训

该事件突出了严格审查部署程序的重要性。 即使没有智能合约漏洞,协议也必须确保更新不会破坏协议复杂模块提出的任何不变量。

我们要感谢 Rho Markets 在此问题上的快速行动和透明度,以及所有与我们一起参与作战室的 SEAL 911 成员。

  • 原文链接: dedaub.com/blog/rho-mark...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Dedaub
Dedaub
Security audits, static analysis, realtime threat monitoring