月亮链 月亮链
Ctrl+D收藏月亮链

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

作者:

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

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

交易细节如下图所示:

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

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

麦当劳发推调侃后,投机者创建的代币Grimacecoin飙涨285641%:1月26日消息,在麦当劳发布推文调侃后,投机者趁机创建同名代币Grimace Coin,在几个小时内飙涨285641%。

币安智能链(BSC)上的一款Grimacecoin以0.0007美元的价格开盘交易,一度达到峰值2美元,然后跌至0.60美元的水平。该代币市值一度接近200万美元,截至发稿时价值80万美元,在用户创建和提供的流动性池中有超过65000美元资金。然而区块链数据显示,93%的代币由单一实体持有。另一款Grimacecoin市值一度达到100万美元,价格一度涨至0.00000193美元;锁定104000美元的流动性,75%的代币由一个地址持有。

基于以太坊区块链的Grimacecoin在发行后的几个小时内飙升56000%,持有者达到1000名,市值达到600万美元。

据此前报道,继昨日晚间马斯克在推特上向麦当劳推荐接受狗狗币支付后,麦当劳在推特上回应马斯克称,除非特斯拉接受Grimacecoin。Grimace是一个毛茸茸的紫色卡通形象,在麦当劳的商业广告中与罗纳德·麦当劳一起出现。麦当劳官方并没有发布所谓的Grimacecoin。(CoinDesk)[2022/1/26 9:14:44]

0x03:漏洞分析

Grin钱包Niffler v0.6.1发布:Grin钱包Niffler wallet v0.6.1发布。 Niffler v0.6.0支持是一个修复Bug/有若干改进的版本,主要有:

1. 更新Grin node到v4.1.0;

2. 增加了法文版本;

3. 修正了Bug:grin node version显示/恢复钱包时没有生成config;增加导出日志功能。(Grin爱好者)[2020/9/21]

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

动态 | Grin将完成首次出块:据MORECOIN研究院消息,Grin主网的第一个区块将在北京时间1月16日的00:01:27被挖出。[2019/1/16]

该函数的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方法实现套利,而闪电贷?攻击者只是利用闪电贷扩大了套利值。

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

标签:GRIRIMOINCOIGRI币$HRIMP币Gold Bits CoinDentcoin

火币交易所热门资讯
COM:XT关于下架部分交易对的公告_SDT

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

1900/1/1 0:00:00
COM:XT关于ETF产品MASK3S、CHZ3S触发份额合并的公告_XT.com

尊敬的XT用户:由于杠杆ETF产品MASK3S、CHZ3S的单价低至0.08USDT,触发了XT杠杆ETF产品份额合并机制.

1900/1/1 0:00:00
ALK:Alkimi (ADS) 登陸KuCoin!_Walker

親愛的KuCoin用戶:我們很高興地宣布,KuCoin將上線Alkimi(ADS)項目並支持交易對ADS/USDT和ADS/BTC.

1900/1/1 0:00:00
BIT:BitWell与WOO Network达成战略合作_Soke Network

12月22日,BitWell与WOONetwork达成战略合作,双方将在CeFi领域上展开深入合作,提升BitWell上各币种的盘口流动性和交易体验.

1900/1/1 0:00:00
GATE:Gate.io XDC/USDT、XDC/ETH流動性礦池今日各新增額外限時獎勵239,000 XDC_GRAM

爲鼓勵更多用戶積極參與Gate.io流動性挖礦,今日早上11:00,XDC/USDT、XDC/ETH流動性礦池獎勵各新增額外239.

1900/1/1 0:00:00
Gate.io HODL & Earn: Lock CPOOL To Earn 100% APR(Phase 3)

TheLockCPOOL&Earn#3(term14days)willlaunchat8:00UTConDec30thatGate.

1900/1/1 0:00:00