欧易

您数字货币与 Web3的直通车

数字货币交易和 Web3 - 为您轻松实现

欧易交易所
当前位置:首页-资讯-详情

Hedgey攻击事件分析:损失上千万美元的代币授权

2024年4月19日,HedgeyTokenClaim合约在以太坊、Arbitrum等多条链上被攻击,损失高达数千万美元。Hedgey项目方随即发出安全告警,提醒创建代币认领活动的用户通过官方渠道取消代币认领活动。(https://twitter.com/hedgeyfinance/status/1781257581488418862)

 

攻击简述

Hedgey帮助DAOs和链上组织通过链上、程序化的代币发放,将代币分配给他们的团队、贡献者、投资者和社区。本次出现漏洞的工具是其TokenClaims产品,该产品可以让用户创建一个代币认领页面,通过CSV文件添加多达十万多名接收者到白名单中,并控制如何通过流、时间锁、回收等方式释放已认领的代币。

而本次攻击事件所利用的合约漏洞在于:TokenClaims产品中的ClaimCampaigns合约在创建一个代币认领活动时,将自身的token授权给了创建者指定的地址。在该创建者取消认领活动时,将活动创建阶段创建者转入的token返还给创建者指定的另一个地址,但并未撤销token授权,导致活动创建者的地址依然可以使用ClaimCampaigns合约所授权的token。

攻击中涉及的关键地址

本次攻击涉及到多笔交易,我们仅以下面这笔盗取NOBL代币的交易为例来对攻击原理进行分析。

攻击交易:https://etherscan.io/tx/0x017ce9593350cba65d506e1a87e52d2c20079fdfa80a350a89fe6fc875f2d9f9

攻击EOA:

0xded2b1a426e1b7d415a40bcad44e98f47181dda2

攻击者(合约):

0xd818ff3d5cfc938014b270d0c8029ba04629b549

漏洞合约(ClaimCampaigns):

0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511

被盗代币(NobleBlocks:NOBLToken):

0x88b9f5c66342ebaf661b3e2836b807c8cb1b3195

攻击流程分析1.攻击实施

在攻击实施阶段,攻击者多次调用漏洞合约的「createLockedCampaign」函数创建campaign,再调用「cancelCampaign」函数删除campaign。创建campaign时,攻击者向漏洞合约转入指定数量的NOBL代币,并获得漏洞合约给其授权的NOBL代币使用额度。删除campaign时,漏洞合约退还攻击者创建campaign时转入的NOBL代币,然而此时漏洞合约并未撤销给攻击者授权的NOBL代币使用额度。因此攻击者通过创建campaign再删除campaign,可以凭空获取花费漏洞合约持有的NOBL代币的权力。

具体攻击步骤如下:

攻击者调用漏洞合约的「createLockedCampaign」函数创建campaign,在参数中将「campaign.manager」和「claimLockup.tokenLocker」均设置为攻击者自己,将「campaign.token」设置为NOBL代币,「campaign.amount」设置为「680000000000000000000000」(NOBL代币的decimal为18,因此此处代表680000个NOBL代币),「donation.amount」设置为0。从「createLockedCampaign」函数代码可以看出,攻击者首先将NOBL代币转给漏洞合约,然后再通过「safeIncreaseAllowance」函数,使漏洞合约给「claimLockup.tokenLocker」(攻击者)授权花费漏洞合约持有的NOBL代币的权力,此处授权了「campaign.amount」这么多的额度给攻击者。

攻击者调用「cancelCampaign」函数删除第1步中创建的campaign,从函数代码可以看出,漏洞合约将该campaign的数据删除,并调用TransferHelper库的「withdrawTokens」函数将第1步中攻击者转入的NOBL代币还给「campaign.manager」(攻击者)。至此campaign成功被取消,然而第1步中漏洞合约授权给攻击者的NOBL代币使用额度并没有同步删除。因此攻击者此时还具备花费漏洞合约NOBL代币的权力。

攻击者重复25次第1步和第2步的操作,最终从漏洞合约获取到了680000*25=17000000个NOBL代币的使用额度。

2.收割赃款

在收割赃款阶段,攻击者直接调用NOBL代币的「transferFrom」函数,将NOBL代币从漏洞合约转到攻击者EOA地址上,由于在攻击实施阶段攻击者已经拿到了花费漏洞合约持有的NOBL代币的权力,因此在「transferFrom」函数中的额度校验可以顺利通过,最终攻击者成功盗取了漏洞合约中的NOBL代币。

具体细节请查看交易:https://etherscan.io/tx/0x47da1ac72d488f746865891c9196c1632ae04f018b285b762b2b564ad1d3a9e5

攻击中涉及到的交易

通过ZANKYT数据分析,攻击者在从漏洞合约中取走NOBLtoken之前,利用合约漏洞让漏洞合约给攻击者approvetoken的交易hash如下(仅罗列了以太坊上的交易):

目前,攻击者已将部分非法所得转移到了另外一个地址0xd84f48b7D1AaFA7bd5905c95c5d1ffB2625AdA46上,目前暂时没有其他动作。而claims合约的开发者(0x5a4bC2bdA1f6B9929b6efdCef4728246bEc4C635)通过Blockscanchat与攻击者联系,承认了合约中的漏洞并假定了他们的行为为白帽行动,希望攻击者在24小时内与他们取得联系。

安全建议

通过分析本次攻击事件,我们有如下建议:

严格审查项目中代币授权的操作。项目开发者和合约审计者应该明确哪些业务场景需要代币授权,哪些业务场景需要回收代币授权,避免未回收的代币授权或预期之外多余的授权被攻击者利用。

项目应设置紧急暂停机制。建议涉及到资金流转的项目都建立完善的暂停机制,当攻击发生时,能及时止损。

本文由ZANTeam的Cara(X账号@Cara6289)和XiG(X账号@SHXiGi)共同撰写。

相关报道

Pri0r1ty Intelligence融资百万美元 推动闪电网络比特币流动性扩展 2025-07-29

Pri0r1ty Intelligence融资百万美元 推动闪电网络比特币流动性扩展

据比特币分析机构NLNico最新披露,英国伦敦上市公司Pri0r1ty Intelligence Group PLC正式宣布已成功完成一轮价值100万美元(约合75万英镑)的融资。

Read More
京东注册“JCOIN”与“JOYCOIN”,稳定币计划加快布局 2025-07-29

京东注册“JCOIN”与“JOYCOIN”,稳定币计划加快布局

近日,京东集团(9618.HK)旗下的京东币链传出新动向。据媒体披露,京东币链已完成“JCOIN”与“JOYCOIN”两个名称的注册,市场普遍猜测这两者将用于其即将推出的稳定币项目。

Read More
以太坊企业储备大战打响:SharpLink 加速囤币挑战 BitMine 2025-07-29

以太坊企业储备大战打响:SharpLink 加速囤币挑战 BitMine

据 Cointelegraph 报道,以太坊联合创始人兼 Consensys 首席执行官 Joe Lubin 近日披露,他正在积极参与美国体育娱乐平台公司 SharpLink Gaming 的以太坊财库策略制定,并希望借此推动该公司加速囤积 ETH,意图引领一场企业级以太坊储备竞赛。

Read More
MetaMask上线StablecoinEarn功能,支持稳定币无锁收益 2025-07-29

MetaMask上线StablecoinEarn功能,支持稳定币无锁收益

近日,知名去中心化钱包MetaMask宣布推出一项全新功能——StablecoinEarn(稳定币生息),该功能允许用户在钱包界面内直接将稳定币存入,并通过借贷协议Aave获取利息收益。

Read More
欧易OKX官网如何免翻墙访问?超链导航提供最新解决方案 2025-07-29

欧易OKX官网如何免翻墙访问?超链导航提供最新解决方案

随着加密货币市场的快速发展,越来越多国内用户开始关注并参与到数字资产的投资与交易中。

Read More
FIS携手Circle推出基于USDC的支付服务 2025-07-29

FIS携手Circle推出基于USDC的支付服务

美国领先的技术服务提供商FIS(Fidelity National Information Services)近日宣布与加密公司Circle Internet Group建立战略合作,计划为金融机构引入基于美元稳定币USDC的交易服务。

Read More

立即创建 账号,开始交易!

创建账号