iVest 代币漏洞:攻击者如何利用捐赠功能操纵价格

本文为机器翻译
展示原文

币安智能链上的项目iVest于 2024 年 8 月 12 日遭受攻击,截至撰写本文时估计损失约为 172,000 美元。该事件凸显了用于提供税收捐赠等附加功能的ERC20自定义转账功能中的漏洞。

概述

攻击者:

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

脆弱合约:

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

交易攻击: https://bscscan.com/tx/0x12f27e81e54684146ec50973ea94881c535887c2e2f30911b3402a55d67d121d

漏洞分析

攻击重点是__MakeDonation函数,该函数在转移iVest代币时被调用。在某些情况下,此函数会从发送者处销毁或捐赠额外的代币。从发送者处扣除的代币数量超过发送金额会导致交换池出现严重问题,因为攻击者可以使用它来减少池中的代币数量,改变k比率并实现价格操纵。

攻击者首先借出WBNB并将其换成iVest代币。然后,他们将一定数量的iVest代币转移WBNB / iVest对,并将代币撇取(转出代币以强制余额与储备匹配)到地址 (0) ,这会触发__MakeDonation从池子储备中销毁更多代币。接下来执行同步以操纵k比率。iVest币的价格现在比开始时高得多,允许攻击者将剩余的iVest代币换回WBNB并从上涨的价格中获利。

经验教训

ERC20合约至关重要,因为它管理着生态系统中的所有资金。因此,开发人员在创建合约时必须格外小心。尽可能避免自定义ERC20合约中的逻辑。在AMM池中执行代币之间的交换时,应格外小心地处理转移函数的任何自定义逻辑。

强烈建议进行安全审计,无论是简单的、只有一些小改动的ERC20合约,还是复杂的、有数十万行代码的DeFi协议。

相关赛道:
来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论