2024 年 4 月 19 日,HedgeyFinance 遭受攻击,造成估计损失 4,500 万美元。 Campaign 合约中的设计错误允许攻击者直接窃取大量资产。
在本部落格中,我们将分析以太坊网路上的第一次攻击,以帮助使用者预防自己专案中的类似漏洞。
感谢您阅读 Verichains!免费订阅以接收新帖子并支持我的工作。
概述
攻击者:
https://etherscan.io/address/0xded2b1a426e1b7d415a40bcad44e98f47181dda2
脆弱合约:
https://etherscan.io/address/0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511
交易攻击:
https://etherscan.io/tx/0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517
https://etherscan.io/tx/0x2606d459a50ca4920722a111745c2eeced1d8a01ff25ee762e22d5d4b1595739
漏洞利用分析
在第一笔交易之后,攻击方法出乎意料地简单。攻击者藉用大量USDC来建立锁定活动,然后立即取消活动。
在第二笔交易中,攻击者触发合约将USDC直接从 HedgeyFinance 合约转移到自己的地址。
第二笔交易的简单性强烈表明,该漏洞利用的根本原因在于步骤 1 中的createLockedCampaign和cancel函数。
在建立锁定活动期间,拥有者可以指定 tokenLocker。该 tokenLocker 在获得批准后,可以转出与新创建的活动相关的所有代币。此行为似乎是一个潜在的漏洞。
虽然函数注释表明意图阻止任何人要求额外代币,但它似乎仅限制对奖励代币的存取。至关重要的是,该功能不会撤销上一步中授予的批准。这种疏忽允许攻击者撤回活动中所有质押的代币,同时保留先前步骤的批准。
透过这种持续的批准,攻击者可以轻松地将代币从合约转移到任何所需的位置。
透过逆向分析createLockedCampaign函数,可以明显看出审批逻辑有缺陷。授予锁定活动随时转出代币的能力与预期行为相矛盾。这项设计缺陷是 HedgeyFinance 漏洞的根本原因。








