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

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

总述

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

多个主流加密协议发布相同“Soon”短视频:4月3日消息,多个主流加密协议发布发布相同“Soon”短视频,包括数字资产管理平台 Safe(原 Gnosis Safe)、去中心化交易平台 Balancer、以太坊智能合约自动执行工具 Gelato Network 等。[2023/4/4 13:42:53]

交易发起地址:

Arbitrum:0x9b1acd4336ebf7656f49224d14a892566fd48e68

被攻击的合约:

Arbitrum:0x812cda2181ed7c45a35a691e0c85e231d218e273

Zhu Su:将推出长视频播客系列,讨论生活和心理健康等:11月28日消息,三箭资本联合创始人Zhu Su发推文表示,其将和一个名为Cliff的好友很快将推出一个长视频播客系列,讨论生活、信仰系统和心理健康。

Cliff是Zhu Su相识十多年的好友,曾在加入三箭资本一年后离开,自此5年未联系过。Zhu Su称:“今年6月,三箭资本暴雷后,他给我发信息,让我来巴厘岛见他。我无法理解生活的意义。当我们再次成为最好的朋友时,得到的东西失去了,失去的东西又得到了。当秋天天气变得凉爽时,生活又重新开始了。”

此前7月份消息,三箭资本已根据美国破产法第15章向纽约法院申请破产保护。虽然Zhu Su仍未透露其位于何地,但仍在推特上持续发声,近日,他表示其正在考虑建立一个全新的投资交易公司,公司也许是一家既投资加密资产又投资传统资产的全天候基金。[2022/11/28 21:06:23]

攻击交易:

动态 | YeeCall视频专利通过中国专利局审查 并予以正式签发:今日,YEE项目合作伙伴YeeCall的视频专利《一种视频感兴趣区域快速标定方法与装置》通过中国专利局官方审查,作出了授权决定并签发了授权专利权。据介绍,该专利提供了一种准确又简单快速的标定视频感兴趣区域的方法,在动态视频图像中标定人脸区域,尤其适用于处理器能力有限的终端和应用情境。上个月,YeeCall已有2个专利获得中国专利局正式签发。[2019/4/23]

Arbitrum:0x57dc8e6a28efa28ac4a3ef50105b73f45d56615d4a6c142463b6372741db2a2b

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

?交易详情

从代码上来看,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:78ms0-7:794ms