塔岸网

Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞

热度:4℃ 发布时间:2023-11-29 04:19:56

2020 年夏天, SushiSwap 创始人 Chef Nomi  所发布的 MasterChef 智能合约可能是最早一波 DeFi 狂潮中被重新部署最多次的合约。很多的 DeFi 项目会略为修改 MasterChef 合约来实现他们流动性挖矿的功能。然而,过去一年多的时间内,有几个项目在修改 Nomi 主厨「食谱」的过程中犯了错误,造成无法挽救的损失 。2021 年 10 月 6 日,我们也发现了一个失误的项目,所幸在还没造成损失之前,该项目就成功修复了漏洞,并且完成升级。

0x00: Dinosaur Eggs

这次事件的主角Dinosaur Eggs 项目的「流动性资金池」(Liquidity Pool)智能合约也是一个「加强版」的 MasterChef 合约,其主要修改的部分是新增了「addtionalRate」功能。这个功能是为了让特定的NFT 持有者在存入「流动性提供者代币」(LP Tokens)时可以获得额外的奖励,最高可达10%,条件是存入LP Tokens 之前必须「销毁」特定的NFT 资产。

Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞

从上面的程序代码片段327-328 行可以看到(_amount*user.addtionalRate) 会被加到user.addtionalAmount 里头,而这个addtionalAmount 会在计算奖励时被加入计算。

0x01: 漏洞细节

Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞

漏洞出现在从MasterChef 继承而来的紧急逃生出口— emergencyWithdraw() 函数。这个函数是用来让user 可以在紧急情况把所有存入的LP tokens 一次取出来,不考虑奖励计算。然而,前面提到的user.addtionalAmount 在这个函数里没有被reset,也就是说下一次的harvest() call 会出现user 没有存入任何LP tokens 的状态下仍然可以领取奖励的情况。

从harvest() 函数的第342 行可以看到pendingAmount 的计算是[(user.amount+user.additionalAmount)*pool.accRewardPerShare – user.rewardDebt]。由于之前的emergencyWithdraw() 已经reset 了user.amount 以及user.rewardDebt,pendingAmount 就变成了(user.addtionalAmount*pool.accRewardPerShare)。因此,攻击者可以在没有任何LP tokens 存入的状态下,不停的来回利用harvest() 跟emergencyWithdraw() 把所有的reward tokens 取出。

Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞

0x02: 漏洞利用

Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞

上面的攻击合约程序代码验证了上述的想法,在prepare() 函数里,我们刻意铸造了一个NFT(第36 行)并且通过第40 行的additionalNft() 函数启动了前面提到的addtionalRate 机制,随后我们deposit() 了一部分LP tokens 到LiquidityPool。为了获得额外的奖励,我们在trigger() 函数里利用回圈多次调用emergencyWithdraw() 与harvest() 函数(第48-51 行)。

Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞

从上面的eth-brownie 截图可以看到,我们只用了30 个LP tokens (DsgLP) 就能获取上千的reward tokens (DSG)。在同样的情况如果只是单纯的harvest() 没有刻意emergencyWithdraw(),只有不到一个的DSG 奖励。假设攻击者利用闪电贷款生成大量LP tokens,还能更进一步扩大获利。

0x04: 后续发展

在我们向DSG 团队通报这个漏洞之后,他们很快的确认问题并且展开了修补工作。新版的LiquidityPool 合约部署上线后,DSG 团队通知了用户将资产从旧版取出后迁移到新版,同时也将旧版的流动性挖矿暂停。幸运的是,在完成迁移之前,并没有真正的攻击发生,DSG 团队也根据漏洞赏金计画给了我们$10k 等值的DSG tokens奖励。这部分奖金随后被用来捐助开放文化基金会,支持开源软件发展。

以上就是Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞的全部内容,望能这篇Amber Group安全专家解析:Dinosaur Eggs(DSG)流动性资金池漏洞可以帮助您解决问题,能够解决大家的实际问题是塔岸网一直努力的方向和目标。

  • 区块链推荐
更多+
香港HashKey交易所正式上线App,平台币HSK或在明年年中

香港HashKey交易所正式上线App,平台币HSK或在明年年中

香港持牌加密货币交易所HashKey Exchange 周三(1日)正式推出行动端应用程序,为专业投资人和零售用户提供服务。HashKey 营运长Livio Weng 受访表示,HashKey 还计划铸造自己的ERC-20 应用型代币HSK,可能会在明年年中上市。App 正式上线根据《The Blo...

11-15

Sushi社群起义要求归还代币分润权,SUSHI过去一周涨超

Sushi社群起义要求归还代币分润权,SUSHI过去一周涨超

Sushi 社群成员在治理论坛发布提案,拟议恢复SUSHI 代币的价值与功能,并让DAO 重新掌握协议治理权。Sushi 社群起义重拾治理权社群成员Trantor 表示,自从Kanpai 2.0 于2022 年12 月推出以来,所有协议费用都流入国库,尽管这有助于确保国库能够获得充足的资金,但核心团...

11-15

继贝莱德之后,景顺的比特币ETF也在DTCC上架,股票代

继贝莱德之后,景顺的比特币ETF也在DTCC上架,股票代

继贝莱德的IBTC 之后,景顺(Invesco)与Galaxy 共同提交的比特币现货ETF 也在美国证券存托清算公司的清单(DTCC)上架,股票代码为BTCO。标志着这两档ETF 申请正朝着标准程序持续推进。需要再次重申的是,许多人甚至会误将「上架DTCC」视为比特币现货ETF 批准的预告,但事实上...

11-15

OKX POR 一周年里程碑事件回顾:创下多个里程碑

OKX POR 一周年里程碑事件回顾:创下多个里程碑

由于传统金融体系缺乏信任而诞生的加密行业,逐渐崭露头角,并引发了人们的思考以及全球范围内的广泛关注,迄今已经成长为万亿美元市场。但作为没有任何参考的新兴行业,加密市场为传统金融市场带来创新与注入活力的同时,各种突现的黑天鹅事件也不容忽视,合规透明正成为其未来发展的主旋律。作为全球领先的加密资产交易所...

11-15

Bitfinex被列入英国FCA未经授权警告名单

Bitfinex被列入英国FCA未经授权警告名单

根据英国金融行为监理总署 (Financial Conduct Authority, FCA) 官方公告显示,知名交易所 Bitfinex 被列为未经当局授权的警告名单。FCA:Bitfinex 在未经授权下推广英国金融行为监理总署 (Financial Conduct Authority, FCA...

11-15

网友评论
评论
发 布

更多区块链