BUY:怪事?盗了又归还?TreasureDAO安全事件分析

3月3日,成都链安链必应-区块链安全态势感知平台舆情监测显示,基于 Arbitrum 的 TreasureDAO NFT 交易市场被曝发现漏洞,导致100多个NFT被盗,令人意外的是,在事件发生几小时后,攻击者却开始归还被盗NFT(猜不透攻击者的心思)。关于本次事件,成都链安技术团队第一时间进行了分析。

总述

交易发起地址利用TreasureMarketplaceBuyer合约中存在的逻辑缺陷,通过该合约的buyItem函数的_quantity参数能够置零且不影响ERC-721代币交易的漏洞,将totalPrice置零从而无代价获取ERC-721代币。

被标记为Paradigm的地址向币安转入近5万枚MKR:金色财经报道,据加密推特KOL余烬监测,被标记为Paradigm的地址向币安转入48179枚MKR,价值约3613万美元。[2023/3/16 13:07:28]

交易发起地址:

Arbitrum:0x9b1acd4336ebf7656f49224d14a892566fd48e68

被攻击的合约:

Arbitrum:0x812cda2181ed7c45a35a691e0c85e231d218e273

知名投资者Mark Mobius:美联储收紧货币政策,看空比特币:金色财经报道,知名投资者Mark Mobius预测,比特币将徘徊在目前的1.7万美元附近,但到2023年可能会跌至1万美元。MarkMobius补充道:看空比特币的理由是美联储收紧货币政策。(CNBC)[2022/12/10 21:35:23]

攻击交易:

Arbitrum:0x57dc8e6a28efa28ac4a3ef50105b73f45d56615d4a6c142463b6372741db2a2b

在Arbitrum上,交易发起者通过TreasureMarketplaceBuyer合约的buyItem函数传入了数值为0的_quantity参数,从而无偿购买了TokenID为5490的ERC-721代币。(仅以此次交易为例)

美国SEC希望在Ripple案中阻止XRP持有人协助法庭:金色财经报道,美国证券交易委员会(SEC)已通知法院,它计划对XRP持有人要求成为法庭之友的请求提出异议。由于即将到来的假期和其他简报截止日期,SEC要求法官Analisa Torres将XRP持有者请求的期限延长至6月7日。此前,Analisa Torres法官拒接XRP持有者直接参与Ripple-SEC诉讼,称“他们不能提供证据或证人,但可以作为法庭之友简要介绍与案件相关的法律问题。”

据悉,“法庭之友”是指在诉讼案件中,没有直接涉及法律利益的私人或团体,为了向法院说明其对该案件相关法律争议上的意见、澄清立法意旨、理清模糊的法律规定、通知法院关于案件事实的真实情况等等的目的,主动向法院提出书面报告,以协助法院更公正地做出裁决。(u.today)[2022/6/6 4:04:04]

?交易详情

从代码上来看,TreasureMarketplaceBuyer合约的buyItem函数在传入_quantity参数后,并没有做代币类型判断,直接将_quantity与_pricePerItem相乘计算出了totalPrice,因此safeTransferFrom函数可以在ERC-20代币支付数额只有0的情况下,调用TreasureMarketplace合约的buyItem函数来进行代币购买。

TreasureMarketplaceBuyer 合约的?buyItem函数代码

但是在调用TreasureMarketplace合约的buyItem函数时,函数只对购买代币类型进行了判断,并没有对代币数量进行非0判断,导致ERC-721类型的代币可以在无视_quantity数值的情况下直接购买,从而实现了漏洞攻击。

TreasureMarketplace的buyItem函数代码

涉及的代币资产:

总结建议

本次安全事件主要原因是ERC-1155代币和ERC-721代币混用导致的逻辑混乱,ERC-721代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,最后在代币转账时也没有进行分类讨论。

建议开发者在开发多种代币的销售贩卖合约时,需要根据不同代币的特性来进行不同情况的业务逻辑设计。

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

地球链

币安下载SEE:SeedClub是如何孵化DAO的?

SC04 已经谢幕。通常,我们已经准备处理新一轮加速器项目的申请了,但是现在,大家需要先松一口气。四轮加速器,55个项目,所有这些都在短短16个月内完成。我的天呐.

[0:0ms0-1:78ms