根据 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,从而完成盈利。 总 结 迁移流动性时应该多重考虑新池子和旧池子两种代币的数量的变化或者当前的代币价格,直接取交易对两个币种数量计算容易被操控。 此外,代码上线前应做好全面的安全审计。 END. 查看更多 —- 编译者/作者:Numen Cyber 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Web3安全|CellframeNetwork因闪电贷操控池子比例遭受攻击事件分析
2023-06-01 Numen Cyber 来源:区块链网络
LOADING...
相关阅读:
- 估值近1亿美元12万Steam愿望清单Sui上旗舰链游AbyssWorld能否打响第一枪?2023-06-01
- 比特币TaprootAssets协议特性速览2023-05-31
- 什么是跨链交易?2023-05-31
- 5个值得注意的LSD协议2023-05-31
- 无抵押借贷DeFi赛道概览2023-05-31