木星链 木星链
Ctrl+D收藏木星链
首页 > 狗狗币 > 正文

GRI:Grim Finance闪电贷安全事件分析

作者:

时间:1900/1/1 0:00:00

安全实验室第一时间对本次事件深入跟踪并进行分析。0x02:事件详情

交易细节如下图所示:

浏览上图的交易过程可知,攻击合约利用闪电贷借取代币WFTM和BTC,将借取的代币与自己铸造的代币质押到SpiritSwap里增加流动性获取lp代币,而问题就出现在攻击者通过depositFor()实现质押的过程中。

通过Tenderly(https://http://dashboard.tenderly.co/tx/fantom/0x19315e5b150d0a83e797203bb9c957ec1fa8a6f404f4f761d970cb29a74a5dd6/debugger调试该笔交易,攻击者多次递归调用depositFor函数,利用该函数获取大量代币:

?Binance Labs 启动第 4 季孵化计划,FilSwan、Grindery、NuLink 等 14 个项目入围:5月4日消息,?Binance Labs 宣布将于 5 月 5 日启动第 4 季孵化计划,共 14 个项目从超 500 个项目中入围,包括 FilSwan、Grindery、NuLink、Starton、CODA Ventures、OpenLeverage、AlterVerse、ChapterX、CoralApp、Gamic Guild、Qwestive、Reveel、Playbux、Ambrosia 等。[2022/5/4 2:50:08]

0x03:漏洞分析

动态 | 神秘人物匿名捐赠50枚BTC给Grin 李启威称该神秘人物是中本聪:今日凌晨3点左右,Grin开发人员David Burkett在Grin官方电报群中发布消息称,11月12日凌晨,Grin团队收到一笔50枚BTC的匿名捐款。随后,莱特币创始人李启威现身电报群称,该神秘人物是中本聪。其给出的理由是,经过查询捐款地址,信息显示该捐款地址交易账户是九年前建立的。随后,David Burkett笑称,虽然希望是中本聪捐的,但没有证据证明这一点。[2019/11/12]

depositFor()函数位于https://http://ftmscan.com/address/0x660184ce8af80e0b1e5a1172a16168b15f4136bf#code的第1115行:

Citadel创始人兼CEO Ken Griffin认为 比特币可能陷入了投机泡沫:投资资本280亿美元的Citadel创始人兼CEO Ken Griffin 本周一向CNBC表示:“比特币现在有很多郁金香狂热的因素,那种狂热我们可以追溯到几百年前的荷兰。”“我很担心,除了让它(比特币)不断上涨的头条新闻以及‘我想确定自己没有错过赚些钱的机会’以外,买比特币的人并没有真正了解自己在参与什么。这是局吗?不是。可这些泡沫往往以悲剧告终。我担心这个泡沫可能怎样收场。”[2017/11/28]

该函数的safeTransferFrom()方法从IERC20(token)调用,调用完该方法后,余额balance也会随之变动,最后通过_mint()方法向用户添加质押凭证代币。其中调用的变量token可控,导致攻击者可以自己实现safeTransferFrom()方法,将该方法重入到depositFor()发起攻击。

以实施了5次重入攻击为例,开始_pool的值为0,在重入depositFor方法的前四次里,攻击者一直传入自己铸造的代币,_pool的值会一直保持为0,但在第五次,也就是最后一次传入100个受认可的代币时,_after的值会变成100,而_afer-_pool的差值_amount也就是100,最后由于重入了5次,导致合约会向攻击者铸造100*5的质押凭证代币。

其后果就是攻击者向该合约质押自己铸造不受认可的代币,同样会增加质押总量,最后利用多出来的质押凭证实现套利。

0x04:修复方案

1.由于depositFor()方法里的token可控才是导致这次攻击事件的原因,因此只需要在传递参数的时候让token不可控就行:

2.由于套利的原因是depositFor()方法里存在修改代币数量的函数,因此还可以将修改代币的方法单独实现,这样即使token变量可控,也无法成功套利:

3.锁定交易token:

0x05:总结

经过完整分析,知道创宇区块链安全实验室明确了该次攻击事件的源头并非网传的闪电贷攻击,攻击者利用GrimBoostVault合约的depositFor方法参数可控,实施了重入攻击,将自己的铸造的无价值代币兑换成了质押凭证,最后通过withdrawAll方法实现套利,而闪电贷?攻击者只是利用闪电贷扩大了套利值。

对于合约代码而言安全性是十分重要的,每一个未经验证的传入参数都可能导致巨大的经济损失,开发者在编写重要操作方法时,须记住零信任原则,谨慎对待每一个传入参数。

标签:GRIDEPOITFDEPPepe Grinchbitflyer交易所中文版下载DEP价格

狗狗币热门资讯
OIN:关于BCH钱包维护暂时关闭SEP-20充提的公告

尊敬的CoinW用户:由于BCH钱包维护,CoinW将暂时关闭SEP-20充提功能,维护完成后将同步开启充提功能,不再另行公告通知.

1900/1/1 0:00:00
NFT:AAX学院解读无聊猿猴游艇俱乐部

一只猴子到底值多少钱?如果它是来自BoredApesYachtClub的收藏品,那么它至少价值50ETH,在撰写本文时相当于200,000美元.

1900/1/1 0:00:00
UCO:來KuCoin聖誕樂園,贏交易禮盒 瓜分400,000 USDT暖冬福利!

親愛的KuCoin用戶,聖誕快樂!為了回饋廣大用戶對KuCoin一如既往的支持,我們將開啟KuCoin聖誕樂園。通過完成活動任務獲得骰子,用戶可在樂園裡前進並獲取相應聖誕禮品.

1900/1/1 0:00:00
COM:XT关于下架部分交易对的公告

尊敬的XT用户:XT作为致力于为全球优质的数字资产提供优质服务的交易平台。平台会定期对已上线的币种进行综合性审核,以确保平台币种的高水准交易.

1900/1/1 0:00:00
THE:Gate.io Listing Vote #250 - Playermon (PYM), $13,000 PYM Giveaway

Playermon(PYM)BonanzaweekstartsDecember2304:00amUTCtoDecember3004:00amUTC.The$13.

1900/1/1 0:00:00
UENC:ZT創新板即將上線GUILD

親愛的ZT用戶:ZT創新板即將上線GUILD,並開啟GUILD/USDT交易對。具體上線時間如下:充值:已開啟;交易:2021年12月24日16:30;GUILD項目簡介:$GUILD是Bloc.

1900/1/1 0:00:00