3月3日,成都链安链必应-区块链安全态势感知平台舆情监测显示,基于 Arbitrum 的 TreasureDAO NFT 交易市场被曝发现漏洞,导致100多个NFT被盗,令人意外的是,在事件发生几小时后,攻击者却开始归还被盗NFT(猜不透攻击者的心思)。关于本次事件,成都链安技术团队第一时间进行了分析。
总述
交易发起地址利用TreasureMarketplaceBuyer合约中存在的逻辑缺陷,通过该合约的buyItem函数的_quantity参数能够置零且不影响ERC-721代币交易的漏洞,将totalPrice置零从而无代价获取ERC-721代币。
Coin Center:美财政部制裁Tornado Cash或违反了正当程序及宪法权利:金色财经报道,加密货币倡导组织Coin Center发布博客文章称,美国财政部外国资产控制办公室(OFAC)制裁Tornado Cash可能在法律和宪法上存在缺陷,Coin Center表示,“我们认为OFAC通过将某些Tornado Cash智能合约地址添加到SDN列表中超越了其法律权限,这一行为可能违反了正当程序及宪法权利”。
Coin Center认为,智能合约不能成为可制裁的实体,这样的标准对全世界的代码人员来说都是危险的。文章称,“这一行动发出了一个信号,实际上似乎是为了发出一个信号,美国人不应该使用某种工具和软件,即使是完全合法的目的”。Coin Center承诺其第一步是与OFAC合作,但该组织也表示,“我们将开始与律师探讨对这一行动的法庭挑战。敬请期待。”[2022/8/16 12:27:43]
交易发起地址:
中国美术学院动画与艺术学院副院长倪镔:中国美术学院站在时代艺术前沿,探索深耕交互、游戏和元宇宙领域:金色财经报道,6月30日,由中国文化产业协会主办的中国数字文创行业高质量发展论坛举办。中国美术学院动画与艺术学院副院长倪镔指出,伴随着科技迭代,艺术有了更多的可能,有机遇也有挑战。中国美术学院始终站在时代艺术的前沿,探索深耕交互、游戏和元宇宙领域。自主启动科艺融合、数字建造、全息艺术等一批新型实验室建设。[2022/6/30 1:42:06]
Arbitrum:0x9b1acd4336ebf7656f49224d14a892566fd48e68
证券日报:多平台“封堵”数字藏品二级交易:6月22日消息,除微信之外,蚂蚁集团旗下数字藏品平台鲸探也在加大对违规账号的惩处力度,曾发布对违规用户处罚公告,已处理超百个违规账号(获取、转赠功能永久封禁)。鲸探官网表示,不支持任何形式的数字藏品转卖行为。根据规定,用户购买拥有数字藏品达到180天,可以向其他实名用户发起转赠,为防止炒作,受赠方接收数字藏品满2年后,可以再次发起转赠。元宇宙产业咨询服务商维势咨询创始合伙人顾伟在接受记者采访时表示,各大平台及协会的做法,表明了监管层和相关行业的态度,以期防患于未然。
此前6月20日消息,微信公众平台新规禁止提供与数字藏品二级交易服务,否则将被封号。(证券日报)[2022/6/22 1:24:01]
被攻击的合约:
Arbitrum:0x812cda2181ed7c45a35a691e0c85e231d218e273
攻击交易:
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代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,最后在代币转账时也没有进行分类讨论。
建议开发者在开发多种代币的销售贩卖合约时,需要根据不同代币的特性来进行不同情况的业务逻辑设计。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。