首页 > 观点 > 正文
欧意交易所

欧意交易所

全球前三大交易所之一,新用户注册最高可得230USDT奖励,同时可拆数字盲盒,100%可以获得数字货币,最高价值60000元

点击注册 进入官网

根据 Numen 链上监控,2023年6月1日10点7分55秒(UTC+8),Cellframe Network(@cellframenet)在 Binance Smart Chain 上因为流动性迁移过程中代币数量计算问题遭到黑客攻击,黑客从中获利76112美元。

事件分析

黑客地址:

https://bscscan.com/address/0x2525c811ecf22fc5fcde03c67112d34e97da6079

攻击交易:

https://bscscan.com/tx/0x943c2a5f89bc0c17f3fe1520ec6215ed8c6b897ce7f22f1b207fea3f79ae09a6

预先调用交易:https://bscscan.com/tx/0xe2d496ccc3c5fd65a55048391662b8d40ddb5952dc26c715c702ba3929158cb9

根本原因

流动性迁移中计算出现问题。

攻击流程

1.首先,攻击者通过 DPP 的 flashloan 获得了1000个 BNB,然后利用 Pancake v3 的闪电贷功能获取了50万个 New Cell 代币。

接下来,他们将所有的 New Cell 代币换成了 BNB,导致池中的 BNB 数量接近为0。

最后,攻击者用900个 BNB 兑换成了 Old Cell 代币。

图片

2.需要注意的是,攻击者在攻击之前添加了 Old Cell 和 BNB 的流动性,获得 Old lp。

图片

3.接着,攻击者调用流动性迁移函数。此时的状态是新池子中几乎没有 BNB,老池子中几乎没有 Old Cell 代币。

迁移的过程涉及以下步骤:

首先,移除旧流动性,并将对应数量的代币返回给用户;接着,按照新池子的比例添加新的流动性。

由于旧池子中基本没有 Old Cell 代币,因此在移除流动性时获得的 BNB 数量会增加,而 Old Cell 代币的数量会减少。

Resoul 中的数值变大,Token1 的数值也变大。

用户只需添加少量的 BNB 和少量的 New Cell 代币即可获取流动性,并将多余的 BNB 和 Old Cell 代币返回给用户。

然后,重复进行迁移操作。

图片

图片

4.最后,攻击者移除新池子的流动性,并将迁移返回的 Old Cell 代币兑换成 BNB。

此时,老池子中有大量的 Old Cell 代币,但没有 BNB,攻击者将 Old Cell 代币重新兑换成 BNB,从而完成盈利。

图片

 总 结  

迁移流动性时应该多重考虑新池子和旧池子两种代币的数量的变化或者当前的代币价格,直接取交易对两个币种数量计算容易被操控。

此外,代码上线前应做好全面的安全审计。

白话区块链|同步全球区块链资讯、区块链快讯、区块链新闻
本站所有文章数据来源:金色财经
本站不对内容真实性负责,如需转载请联系原作者
如需删除该文章,请发送本文链接至oem1012@qq.com

更多交易所入口

一站式注册各大交易所、点击进入加密世界、永不失联,币安Binance/欧易OKX/GATE.IO芝麻开门/Bitget/抹茶MEXC/火币Huobi

点击进入 永不失联
picture loss