BenWAGMI2022-06-27 11:51:23
NFT借贷平台@XCarnival_Lab大约7个小时之前被黑了,至少有3000个$ETH (约380万美元)被盗。下面是该事件的简要分析:
该NFT借贷平台的合约有个bug:作为抵押品的NFT在取出后,其orderID仍然可用,可以此申请贷款。
有三个相关合约:xETH, 钱在这里main.https://etherscan.io/address/0xb38707e31c813f832ef71c70731ed80b45b85b2d……
xNFT, NFT管理器. https://etherscan.io/address/0xb14b3b9682990ccc16f52eb04146c3ceab01169……
P2Controller, 很多借贷限制条件的验证者.
黑客 https://etherscan.io/address/0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a… 从Tornado中拿出了干坏事的启动资金. 然后在OpenSea上购买了 #BAYC 5110。
他部署了一个总控合约 0xf706…ca8d https://etherscan.io/address/0xf70f691d30ce23786cfb3a1522cfd76d159aca8d……, 该合约生成了很多用来当女巫用同一个NFT进行借贷的马仔合约,比如0x5338…3714 https://etherscan.io/address/0x53386a82e55202a74c6d83c7eede7a80ba553714…….
首先,总控将BAYC转给某个马仔(以0x5338为例)。马仔然后调用xNFT中的pledgeAndBorrow()函数(抵押并贷款),抵押品为BAYC,但什么也没贷(贷款为一个总控部署的假xToken合约,数量为0)。本步骤生成了一个orderID(43)。
本Tx中可以看到这些过程,不过只有internal transaction。如果想详细解读得自己深挖调用栈。马仔5338然后取出刚才抵押的NFT,并还给总控。总控再把NFT给别的马仔。如此左手倒右手循环,黑客搞出了几十个orderID,之后可作为借款凭证。而有bug的xNFT并没有在取出抵押物后撤销凭证orderID。
下一步,总控让所有马仔依次从xETH合约里借钱。攻击完成。黑客用空气借走了真金白银(NFT抵押品早就取出了)。这是其中一个tx。
上面的是大概过程。再来看下细节。在xNFT合约中,withdrawNFT()并咩有在取出后消除orderID。当P2controller调用getOrderDetail()时还是能取到这个ID。
在xETH中,borrow()会调用borrowInternal()然后调用controller.borrowAllowed() 来验证orderID是否有效。
这个是P2controller的borrowAllowed() 函数。首先会问xNFT.getOrderDetail(),这个肯定过。还有其他各种限制,但没有一个好使,我在代码评论中有分析。注:黑客之所以要多个马仔合约是因为这里最下面有一个对单个orderID的借贷数量的限制。
总结:抵押物在取出后还有效,这是一个非常简单粗暴肤浅的合约bug。下面这张图是这些错综复杂的内部调用的清晰的调用栈。想不借助工具裸眼分析如果看麻了可以参考下图。
以太坊Layer 2必知必会2023-04-26 15:03:27
浅析NFT未来:仅少数项目上涨 出圈项目会成赢家2023-04-26 14:15:26
E-CNY时代来临:当你的工资成为数字人民币2023-04-26 12:43:48
浅谈为什么MEV搜索者矿池并不可行?2023-04-26 12:08:40
"庄家"互撕 曝出加密巨头拉的那些"帮派"2023-04-26 11:59:08
怎样到达Web3世界:使用Web3技术的公司及集成到业务的步骤2023-04-26 11:53:15
稳定币项目 HAI、Starknet 2023 路线图2023-04-26 11:46:35
ChatGPT类产品安全隐患解决?英伟达发布开源工具包2023-04-26 11:26:24
蚂蚁集团发布HOU、AntChainBridge、Web3开放联盟链等多个Web3产品2023-04-26 11:24:46
ChatGPT背后的算力博弈 中国企业亟待打破美国桎梏2023-04-26 10:59:28
简析DWF Labs:出手频繁 颇具争议的加密做市商2023-04-26 10:48:45
NFT 交易平台生存现状研究:后版税战争时代下的龙头之争2023-04-26 09:20:51
以太坊提款功能开启后的带宽使用情况2023-04-26 08:30:24
上海升级提款效应:数据揭示 LSD 项目们的表现2023-04-26 07:28:37
3分钟读懂基于LayerZero的多链抗MEV DEX聚合器Cashmere2023-04-25 20:05:34
对话去中心化流动性质押协议Rocket Pool:如何促进以太坊Staking民主化?2023-04-25 19:02:21
Bankless:欧美都想监管稳定币 他们怎么做?2023-04-25 17:43:44
Coinbase起诉SEC全文:请在合理时间内回应加密规则请愿书2023-04-25 16:43:34
慢雾:Web3 假钱包第三方源调查分析2023-04-25 15:43:36
Binance Sensei介绍:您的Web3 AI导师2023-04-25 13:20:55