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

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

总述

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

美联储资产负债表规模较上周扩大约1000亿美元至8.78万亿美元:金色财经报道,美联储资产负债表规模较上周扩大约1000亿美元至8.78万亿美元。[2023/3/24 13:23:03]

交易发起地址:

Arbitrum:0x9b1acd4336ebf7656f49224d14a892566fd48e68

被攻击的合约:

Arbitrum:0x812cda2181ed7c45a35a691e0c85e231d218e273

攻击交易:

观点:美国非农就业数据超预期,美联储或继续加息:金色财经报道,随着美国就业报告数字超过预期两倍,这表明美联储可能会继续加息以遏制通货膨胀,加密货币和传统市场下滑。

此前消息,美国1月季调后非农就业人口增加51.7万人,为2022年7月以来最大增幅。[2023/2/4 11:46:39]

Arbitrum:0x57dc8e6a28efa28ac4a3ef50105b73f45d56615d4a6c142463b6372741db2a2b

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

美联储在金融稳定报告中强调稳定币的挤兑风险:5月10日消息,美联储周一发布最新《金融稳定报告》,并强调稳定币的挤兑风险。该报告写道,某些类型的货币市场基金(MMF)和稳定币仍然容易出现挤兑,国内银行的资本风险较低,但一些货币市场基金、债券基金和稳定币仍存在结构脆弱性。

早在1月份,美联储研究人员就发表关于稳定币风险和收益的研究,研究报告称,如果国会不制定针对该行业的新法律,金融稳定监督委员会可能会介入监督稳定币。据此前报道,算法稳定币UST在短短三天内两次与美元脱钩。(CoinDesk)[2022/5/10 3:02:38]

?交易详情

从代码上来看,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代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,最后在代币转账时也没有进行分类讨论。

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

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

金宝趣谈

[0:15ms0-7:325ms