Hundred 与 Agave 闪电贷攻击事件分析_UND:DogPad Finance

1.前言

北京时间3月15日晚,知道创宇区块链安全实验室?监测到Gnosis链上的借贷类协议?HundredFinance与Agave?均遭遇了闪电贷袭击,包括?AAVE的分支Agave?和?Compound的分支HundredFinance?。协议损失超1100万美元。目前?项目方已暂停其数百个市场。

知道创宇区块链安全实验室?第一时间跟踪本次事件并分析。

2.分析

安全团队:Alter Ego Hunters官方Discord遭攻击:金色财经报道,据安全团队CertiK监测,Alter Ego Hunters官方表示其Discord遭到攻击,用户不要点击任何链接、铸造或批准任何交易。[2022/9/18 7:04:07]

2.1攻击者相关信息

HundredFinance被攻击tx:

0x534b84f657883ddc1b66a314e8b392feb35024afdec61dfe8e7c510cfac1a098

攻击合约:0xdbf225e3d626ec31f502d435b0f72d82b08e1bdd

攻击地址:0xd041ad9aae5cf96b21c3ffcb303a0cb80779e358

Meta Bounty Hunters系列NFT24小时交易额涨幅达225.07%:金色财经消息,据NFTGo.io数据显示,Meta Bounty Hunters系列NFT总市值达3346万美元,在所有NFT项目总市值排名中位列第87;其24小时交易额为10,248.12美元,增幅达225.07%。截止发稿时,该系列NFT当前地板价为2.28ETH,增幅达14%。[2022/8/3 2:56:33]

攻击后跨链匿名化:https://etherscan.io/txs?a=0xd041ad9aae5cf96b21c3ffcb303a0cb80779e358

Agave被攻击tx:

0xa262141abcf7c127b88b4042aee8bf601f4f3372c9471dbd75cb54e76524f18e

动态 | ThunderCore合伙人Elaine 离开团队,投资者质疑团队隐瞒消息砸盘:8月5日上午,ThunderCore英文社群电报群和中文微信群管理员发布消息称ThunderCore联合创始人、技术核心 ElaineShi 博士在结束了2年的合约后,不再继续签约。有投资者在社群内表示项目团队早已知道这一事情并且进行了隐瞒,并认为项目方「偷偷砸盘」。(区块律动)[2019/8/5]

攻击合约:0xF98169301B06e906AF7f9b719204AA10D1F160d6

攻击地址:0x0a16a85be44627c10cee75db06b169c7bc76de2c

攻击后跨链匿名化:https://etherscan.io/txs?a=0x0a16a85be44627c10cee75db06b169c7bc76de2c

动态 | Thundercore发布共识协议代码Pala:据coindesk报道,公共区块链平台提供商ThunderCore刚刚在GitHub上发布了一个名为Pala的新共识协议的概念验证代码。根据GitHub页面所述,Pala是一种拜占庭容错共识协议,可以在部分同步网络设置中实现低延迟和高吞吐量。[2019/5/16]

2.2攻击流程

由于HundredFinance与Agave攻击流程与手法类似,因此我们使用HundredFinance进行分析。

HundredFinance攻击调用流程

1、攻击者利用合约在三个池子中利用闪电贷借出WXDAI和USDC

动态 | Product Hunt将Binance Academy列为第三大最受欢迎的网站:据bitcoinexchangeguide报道,Y Combinator支持的新产品分享网站Product Hunt将币安教育计划,即Binance Academy列为其榜单上第三大最受欢迎的网站。其他一些排名较高的加密相关产品包括Robinhood的交易工具和Earn.com。[2019/2/19]

2、在WETH池子质押借出的部分USDC

3、利用重入利用一笔质押,超额借出池子中资金

4、重复质押-重入借出步骤,将其他两个池子资产超额借出

5、归还闪电贷

6、获利转移

2.3漏洞细节

导致本次问题的根本原因是由于在Gnosis链上的官方桥接代币xDAI合约中实现了一个对于to地址的回调(callAfterTransfer函数)

合约实现地址:

https://blockscout.com/xdai/mainnet/address/0xf8D1677c8a0c961938bf2f9aDc3F3CFDA759A9d9/contracts

该回调将直接导致重入漏洞的产生,同时由于在HundredFinance团队fork的Compound版本中没有严格遵循检查-生效-交互,进而导致了总借贷量更新晚于重入实现。最终攻击者得以超额借贷。

类似的,对于Agave项目方,攻击者利用liquidateCall函数内部调用会调用xDAI的?callAfterTransfer?方法进行回调,最终导致攻击者能再次进行借贷。

在HundredFinance攻击中攻击者重入的调用路径如下:

在Agave攻击中攻击者回调路径如下:

3.总结

此次遭受攻击的两个借贷项目由于错误的引入了存在重入的token,同时项目方的fork的代码没有采用检查-生效-交互模式导致了问题的发生。

我们强调:对于一个优秀的项目的引用必须建立在足够的理解和严谨的开发上,尤其是存在差异化的部分,切忌顾此失彼最终因为一个小的差错导致项目全部的损失。

近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-6:708ms