取消对Multichain的授权,,在触发`approve()`的时候要注意gas check
原文作者:Cos(余弦)&blanker.eth
原文来源:twitter
注:本文来自@evilcos 和@0xblanker推特,MarsBit整理如下:
就在刚才,出现了一个非常聪明的钓鱼方式:
这两天@MultichainOrg 出事,官方和各种安全工具如 @RevokeCash 和 @Rabby_io 都在呼吁用户取消对Multichain的授权,同时开发小工具检查用户针对Multichain合约的授权。
BSC上出现了一个攻击者,部署了一个假的ERC-20代币(合约地址:https://bscscan.com/address/0x1af32e8488822bf8e2fff374de8d737ecfb368c3…),修改了`approve()`方法,并手动给大批链上地址伪造授权,让Revoke Cash和Rabby提醒用户取消授权。
https://bscscan.com/address/0x1af32e8488822bf8e2fff374de8d737ecfb368c3
然而,该ERC-20内的`approve()`实际上会大量消耗gas,让用户铸造 $CHI token(即gas token,销毁token可以获得gas refund)给合约部署者。理论铸造上线是整个区块容量,按BSC的正常gas水平3 Gwei,会扣掉被攻击者钱包中大约60美金等值的BNB。
https://bscscan.com/tx/0x7d3e1abaf857abd39e557ccb908c8273c436fd11d22f63c2791c73473bef63ad
当用户看到提醒取消授权时,点击取消授权并且发送交易,就会mint $CHI token到合约部署者的钱包内,目前部署者已经获得大约70k $CHI 价值400美金。
这个合约刚刚部署4个小时,随着时间的推移,受害者肯定会越来越多。
希望 @RevokeCash 和 @Rabby_io 团队注意一下,在触发`approve()`的时候做一次gas check,太离谱的gas limit给用户发个报警,或者直接拒绝交易。
另外,也呼吁 @BNBCHAIN 尽快整合EIP-3298(https://eips.ethereum.org/EIPS/eip-3298),取消`SELFDESTRUCT`和`SSTORE`的gas refund,正式杜绝这个问题。
别问我怎么发现的...我就是前200个受害者之一
听说thread会限流,看到的小伙伴帮忙转发一下,防止更多人受害
同样的问题可能还会发生在其他链上,大家一样要小心。
以上为Multichain合约取消授权的新型钓鱼方式,以下是@evilcos对其分析:
我简单看了下陷阱合约的反编译内容,确实是个很有猫腻的 approve,会让受害者消耗过多 Gas 去铸造 $CHI。
注:用户取消授权实际上也是调用 approve,只是把授权额度设置为 0。
不仅 approve 存在这样的猫腻,转载(transfer/transferFrom)等也是…
这类陷阱合约欺骗用户高 Gas 去铸造 $CHI 的意图之前我们科普过,可以参考:
https://twitter.com/evilcos/status/1640618513676263424
陷阱合约反编译内容见:
https://bscscan.com/bytecode-decompiler?a=0x1af3a67b459003eb1f71084177ce77194be31bc3
不得不说,骗子们挺聪明,借力打力打得好…一个是借了 $CHI 这个 Gas Token,一个是借了安全工具/钱包的授权异常提醒及取消机制。