2022年03月03日,据慢雾区消息,TreasureDAO的NFT交易市场被曝出严重漏洞,TreasureDAO是一个基于Arbitrum上的NFT项目。目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
合约地址
TreasureMarketplaceBuyer:
0x812cda2181ed7c45a35a691e0c85e231d218e273
韩国足球队队长孙兴慜首个NFT系列公售正式开启:据官方消息,元宇宙明星粉丝社区NFTSTAR,携手知名NFT交易市场OpenSea,为韩国国家足球队队长、英超热刺俱乐部前锋孙兴慜联合发布首个NFT系列。该系列于北京时间5月5日晚起在OpenSea站内公售,单个NFT售价为0.09ETH,持有者可以获得各种线上线下权益,包括有机会得到孙兴慜签名球衣、内马尔NFT白名单、免费NFT空投等。球迷及NFT藏家可以到OpenSea购买收藏。[2022/5/5 2:52:29]
TreasureMarketplace:
ParaFi、Framework Ventures和1kx起诉Curve创始人欺诈和处理商业机密:6月9日消息,ParaFi Capital、Framework Ventures 和 1kx 三家 VC 起诉 Curve 创始人 Michael Egorov 涉嫌参与欺诈活动和处理商业机密,对其造成了经济损失。三家公司于 2020 年向 Curve 投资 100 万美元,之后 Michael Egorov 将这些投资款存入 Curve 的流动资金池,三家 VC 未获得 CRV 代币也未收到退款。[2023/6/9 21:25:42]
0x2e3b85f85628301a0bce300dee3a6b04195a15ee
去中心化交易协议0x将引入NFT订单功能:2月15日消息,去中心化交易协议 0x 发布更新提案,将在 0x V4 协议中增加 NFT 订单功能,新功能支持用户发布链上/链下 NFT 订单,并减少 54% 的交易成本,以及支持即时版税。
更新实施后,用户将可以在所有 0x 支持的网络上交易 ERC-721 或 ERC-1155 资产。[2022/2/15 9:52:21]
漏洞细节分析
1.用户通过TreasureMarketplaceBuyer合约中的buyItem函数去购买NFT,该函数会先计算总共需要购买的价格并把支付所需的Token打入合约中,接着调用TreasureMarketplace合约中的buyItem从市场购买NFT到?TreasureMarketplaceBuyer?合约,接着在从TreasureMarketplaceBuyer合约中把NFT转给用户。
2.在TreasureMarketplace?合约中:??
可以发现若传入的_quantity参数为0,则可以直接通过require(listedItem.quantity>=_quantity,"notenoughquantity");检查并进入下面的转移NFT流程,而其中没有再次对ERC-721标准的NFT转移进行数量判断,使得虽然传入的_quantity参数虽然为0,但仍然可以转移ERC-721标准的NFT。而计算购买NFT的价格的计算公式为totalPrice=_pricePerItem*_quantity,因此购买NFT的价格被计算为0,导致了在市场上的所有ERC-721标准的NFT均可被免费购买。??
攻击交易分析
此处仅展示一个攻击交易的细节,其余攻击交易的手法都一致,不再赘述。
攻击交易:
https://arbiscan.io/tx/0x82a5ff772c186fb3f62bf9a8461aeadd8ea0904025c3330a4d247822ff34bc02
攻击者:
0x4642d9d9a434134cb005222ea1422e1820508d7b
攻击细节:
可以从下图中看到,攻击者调用了TreasureMarketplaceBuyer合约中的buyItem函数,并使传入的_quantity参数为0。??
可以看到Token转移均为0,攻击者并没有付出任何成本就成功购买了tokenID为3557的NFT,整个攻击流程与上面的漏洞细节分析中所讲的一致。
总结
本次漏洞的核心在于进行ERC-721标准的NFT转移前,缺少了对于传入的_quantity参数不为0的判断,导致了ERC-721标准的NFT可以直接被转移且计算价格时购买NFT所需费用被计算成0。针对此类漏洞,慢雾安全团队建议在进行ERC-721标准的NFT转移前,需对传入的数量做好判断,避免再次出现此类问题。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。