CertiK:Osmosis漏洞被利用 500万美元损失事件分析

北京时间2022年6月7日,CertiK审计团队监测到Osmosis漏洞被利用,导致了约500万美元的资产受到损失。

此次事件起因于函数MaximalExactRatioJoin中存在的代码漏洞。

该函数由CalJoinPoolShares调用,根据输入的代币数量计算份额。函数MaximalExactRatioJoin的漏洞导致一旦用户通过JoinPool提供流动性,CalJoinPoolShares就会向用户提供远大于其原本应给的LP份额。

推特公告链接:?

https://twitter.com/osmosiszone/status/1534470729797976064

攻击步骤

多个社群反馈称Multichain跨链资金到账存在异常延迟:5月24日消息,据多个社群、社交媒体用户反应称,Multichain 当前跨链资金到账存在异常延迟。此前 Multichain 曾发布公告称将进行升级,会在 24 个小时内完成,但目前多位用户称其跨链资金已长达 48 小时,甚至 72 小时无法到账。

行情显示,MULTI持续下行,最低至6.31 USDT;现报6.34 USDT,24小时跌幅为10.2%。[2023/5/24 22:14:52]

该次攻击中有多人恶意进行多笔交易,以下分析以攻击者①中两个被利用的交易为例。

①攻击者调用JoinPool()将29.95USDC和26.03OSMO的流动性添加至GAMM池,铸成的LP份额为8.79GAMM-678。

数据:Arbitrum钱包地址数量超500万:4月18日消息,据推特用户@Henrystats 在 Dune Analytics 上编制的统计数据,Arbitrum(ARB)的帐户或钱包地址数量在4月17日超过了500万。除了个人地址,ARB生态系统中现在有超过400万个活跃账户,自成立以来已完成近2亿笔交易。[2023/4/18 14:09:44]

②之后,攻击者从678池中调用ExitPool(),使用之前的份额移除流动性。

③由于对剩余代币的份额计算错误,攻击者能够提取约为存款金额1.5倍的代币。

④攻击者多次重复以上攻击步骤,以获取更大的利润。

漏洞分析

此次事件漏洞的根本原因在于对剩余代币的份额计算错误。

MakerDAO联合创始人提议创建meta-DAO,并将协议的资金转移到以太坊上:金色财经报道,MakerDAO的联合创始人Rune Christensen此前暗示计划退出稳定币DAI背后的DeFi协议的运行。Christensen提出一个让 DAO 在没有创始人的情况下实现自我维持的计划。该计划将把Maker的资金转移到以太坊中,并创建可以对协议做出快速决策的meta-DAO。?[2022/9/27 5:55:22]

一旦用户在x/gamm/keeper/msg_server.go中通过Msg.JoinPool信息调用函数JoinPool。

该函数即会调用x/gamm/keeper/pool_service.go第95行的函数JoinPoolNoSwap()。

数字资产平台Atomyze执行首笔俄罗斯金属数字资产交易:金色财经报道,数字资产平台Atomyze宣布了其在俄罗斯的第一笔交易。该交易涉及GPEF Investments代币化钯金,该基金被Rosbank收购,Vector X作为经纪商。数字金融资产(dfa)立法于2021年初在俄罗斯生效,允许使用分布式账本技术(DLT)对真实世界的资产进行通证化。然而,每个平台都必须接受央行的单独审查,迄今为止,央行只批准了三种解决方案。另外两家公司,Sber银行和初创公司Lighthouse,都在过去的一个月里对贴现发票进行了代币化处理。(ledgerinsights)[2022/7/18 2:20:50]

在函数JoinPoolNoSwap()中,通过调用函数getMaximalNoSwapLPAmount()在第192行计算出shareOutAmount的所需流动资金后,函数JoinPoolNoSwap()将在osmosis/x/gamm/pool-models/balancer/amm.go第286行调用pool.JoinPool()。

借贷平台Celsius:CEL代币面临“监管风险”:金色财经报道,借贷平台Celsius Network本月首次警告客户,加密货币CEL容易受到监管风险的影响。这家加密货币借贷公司最近几天加强了其风险披露信息,为高收益的Celsius Earn Program划出一节,说它 \"可能被认为是一项风险投资\",并在CEL的风险中强调了 \"监管\"。

自10月以来,该条款一直是这样写的:与其他数字资产一样,CEL容易受到各种风险的影响,包括盗币者、丢失的私钥、不可逆转的交易和失败的链上交易。此次更新也将 \"监管风险 \"放在了上面。

该公司上周在美国限制了新的 \"Earn \"计划的注册,只允许认可的投资者参与。(Coindesk)[2022/4/23 14:42:40]

然后函数pool.JoinPool()将在第252行调用函数pool.CalcJoinPoolShares(),并且在执行pool.CalcJoinPoolShares()时在第283行调用cfmm_common.MaximalExactRatioJoin()。

函数cfmm_common.MaximalExactRatioJoin()将在添加流动性时计算usedAmount,它将份额比例与用户投入的代币数量相乘。

然而,所需的流动资金应该等于minShareRatio*池中的总流动资金。通常情况下,总流动性大于一个用户存入的代币,也就是usedAmount小于预期。这里需要注意的是返回值remCoins记录了流动性增加后的剩余代币。usedAmount比预期的要小,因此导致remCoins的值比预期的要大。

在执行函数cfmm_common.MaximalExactRatioJoin()后,这些剩余的代币remCoins将通过调用函数pool.calSingleAssetJoin()在第300-310行被用来向资金池添加更多的流动性。然而,由于remCoins的数量比预期的要大,所以提供给用户的份额将比预期的多。

资产去向

Osmosis已官放宣布发现该漏洞,并正在进行修复。被盗资金与CEX账户有关,并已通知执法部门。Osmosis还宣布,利用Osmosis漏洞的四个人已经被确认,其中两人将归还资金;另外两人Osmosis正在进行联系,等待进一步沟通。

Osmosis表明,所有损失都将得到弥补。这些资金将来自其战略储备,而不是社区的资金池。另外被盗的资金将大概率被追回。

漏洞交易

该次攻击中有多人恶意进行多笔交易,我们以其中一人的一次交易作为示例:

攻击者①:https://www.mintscan.io/osmosis/account/osmo1hq8tlgq0kqz9e56532zghdhz7g8gtjymdltqer

相关的漏洞交易?

JoinPool

https://www.mintscan.io/osmosis/txs/573EFD7828573B06FF6C13DFEDC3B2FFC281D4F78854D9B9F676528490C3396B

ExitPool

https://www.mintscan.io/osmosis/txs/E789B8FF7A42F27A0AC352C5C1281EA27996B6F22C5B24478A9B85C5919DE637

攻击者②:

https://www.mintscan.io/osmosis/account/osmo1tg70tuzekpd376dpqr68yx5a7r709w6x8jtxha

相关的漏洞交易?

JoinPool

https://www.mintscan.io/osmosis/txs/380A10103F53296A1CE663FDA5CF79DA904E0EC175C866C5FDFB106A934C64BD

ExitPool

https://www.mintscan.io/osmosis/txs/D70852934B81194DA6C776F2DA90AF095A19F7018894350E19A369FF5A1EC810

写在最后

如果文件x/gamm/pool-models/internal/cfmm_common/lp.go在审计范围内,可通过审计发现这一风险因素。

CertiK在此提醒大家,除了审计之外,新增的代码也需要在上线前及时进行相应测试。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

火币下载由SeekTiger谈谈熊市里的投资布局

区块链是一个周期性的产业,这个阶段进入寒冬是很正常的事情。投资往往是反人性的,与此对应的是,大部分人会在牛市投项目,估值很高,但其实牛市投资并不是一个很好的选择;反而在熊市的时候,项目估值会降低,这个时候进行投资会有一个相对比较好的回.

[0:15ms0-2:171ms