3月3日,成都链安链必应-区块链安全态势感知平台舆情监测显示,基于 Arbitrum 的 TreasureDAO NFT 交易市场被曝发现漏洞,导致100多个NFT被盗,令人意外的是,在事件发生几小时后,攻击者却开始归还被盗NFT(猜不透攻击者的心思)。关于本次事件,成都链安技术团队第一时间进行了分析。
总述
交易发起地址利用TreasureMarketplaceBuyer合约中存在的逻辑缺陷,通过该合约的buyItem函数的_quantity参数能够置零且不影响ERC-721代币交易的漏洞,将totalPrice置零从而无代价获取ERC-721代币。
菲律宾证券交易委员会向Gemini在该国未经授权的运营发出警告:金色财经报道,菲律宾证券交易委员会于2023年5月18日就衍生品交易所Gemini在该国未经授权的运营发出警告,该监管机构警告该国公众不要投资新产品,并建议他们停止现有投资。通知称,衍生品交易所没有必要的许可和或权力来招揽、接受或接受公众的投资或配售,也没有发行证券。[2023/5/23 15:19:26]
交易发起地址:
Arbitrum:0x9b1acd4336ebf7656f49224d14a892566fd48e68
被攻击的合约:
美联储褐皮书:近几周经济增长陷入停滞:金色财经报道,美联储在褐皮书中表示,最近几周美国经济增长陷入停滞,招聘和通胀放缓,信贷获得渠道变窄。褐皮书称,“最近几周总体经济活动几乎没有变化,几个辖区指出在不确定性增加和对流动性的担忧加剧之际,银行收紧了贷款标准。”“在本报告所述期间,总体物价水平温和上升,但价格上涨速度似乎放缓”。这是自3月初硅谷银行倒闭引发金融市场动荡以来公布的第一份美联储褐皮书。[2023/4/20 14:14:30]
Arbitrum:0x812cda2181ed7c45a35a691e0c85e231d218e273
数据:Alameda转移3700万枚USDC至数字资产经纪公司FalconX:11月21日消息,据派盾PeckShield监测显示,Alameda Research地址向数字资产经纪公司FalconX转移3700万枚USDC。[2022/11/21 22:12:37]
攻击交易:
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代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,最后在代币转账时也没有进行分类讨论。
建议开发者在开发多种代币的销售贩卖合约时,需要根据不同代币的特性来进行不同情况的业务逻辑设计。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。