注册
关闭
琥珀财经

琥珀财经

发布于 2021-12-01 阅读量 3222

纯粹、简单、完美、无暇

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

#1 事件概览

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

简单来说,MonoX创建的是代币-vCASH交易对,添加流动性时,只需要添加代币,进行任意代币兑换时,兑换路径为:代币A -> vCASH -> 代币B,而不需要像Uniswap一样经过多个交易对:代币A -> Pair1-> Pair2-> Pair3-> Token B。

#2 事件具体分析

由于两个平台代码完全一致,下面的分析将基于以太坊上的攻击交易进行。

Round 1

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

Round 2

漏洞1:

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

Round 3

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

Round 4

利用Monoswap合约中的代币兑换价格覆写漏洞,反复进行同种代币的兑换,拉升MONO的价格。

漏洞2:

(1) 在_getNewPrice函数计算应输入输出代币数量时,未考虑到兑换过程中交易池代币储量的变更,同种代币是基于相同的初始价格进行兑换后价格的计算。

(2)在最后一步更新代币过程中,未考虑到同种代币进行兑换时,兑出代币的价格更新操作(图6 第841行)会覆盖兑入代币更新的操作(图6 第830行)。该漏洞导致MONO代币兑换MONO代币时,MONO的价格异常增长。此外不止攻击者使用的swapExactTokenForToken函数存在该问题,swapTokenForExactToken函数也存在该问题。

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

不安分的黑客又“偷袭”?MonoX被攻击事件全解析

币种数量USDC4,029,106.880396 (兑换为847.2066974335073 WETH)USDT4,525,120.098829 (兑换为949.0325798508261 WETH)WETH452.9120530334938WBTC21.42797145DUCK5,155,863.718616853MIM4,125.858256772IMX274.9390440877583

#3 事件复盘

(1)任何地址都可以任意移除指定地址的流动性;(2)特殊情况下的价格写入操作覆盖问题。

  • 0
琥珀财经
琥珀财经

纯粹、简单、完美、无暇

0 条评论