2022 年 03 月 03 日,据慢雾区消息,TreasureDAO 的 NFT 交易市场被曝出严重漏洞,TreasureDAO 是一个基于 Arbitrum(L2)上的 NFT 项目。目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
合约地址
TreasureMarketplaceBuyer:
0x812cda2181ed7c45a35a691e0c85e231d218e273
TreasureMarketplace:
0x2e3b85f85628301a0bce300dee3a6b04195a15ee
日本首相:将大力推动元宇宙和NFT等Web3服务的使用:10月3日消息,日本首相岸田文雄在临时国会会议上进行了政策演讲,其中提到将大力推动元宇宙和NFT等Web3服务的使用,他还将“扩大Web3服务的使用”列为“向数字化转型投资”的目标之一。
此外据Itmedia报道,日本去年新设立的政府机构“数字厅”于9月30日宣布将召开“Web3研究会”,根据日本内阁6月份决定“实现数字社会的优先计划”的政策,将考虑推广NFT等Web3相关技术。该活动的日程和议程尚未公布。(Coinpost)[2022/10/3 18:38:25]
漏洞细节分析
1. 用户通过 TreasureMarketplaceBuyer 合约中的 buyItem 函数去购买 NFT,该函数会先计算总共需要购买的价格并把支付所需的代币打入合约中,接着调用 TreasureMarketplace 合约中的 buyItem 从市场购买 NFT 到 TreasureMarketplaceBuyer 合约,接着在从 TreasureMarketplaceBuyer 合约中把 NFT 转给用户。
BTC跌破19200美元关口 日内跌幅为0.82%:火币全球站数据显示,BTC短线下跌,跌破19200美元关口,现报19199.6美元,日内跌幅达到0.82%,行情波动较大,请做好风险控制。[2020/11/25 22:01:07]
2. 在 TreasureMarketplace 合约中:
可以发现若传入的 _quantity 参数为 0,则可以直接通过 require(listedItem.quantity >= _quantity, "not enough quantity"); 检查并进入下面的转移 NFT 流程,而其中没有再次对 ERC-721 标准的 NFT 转移进行数量判断,使得虽然传入的 _quantity 参数虽然为 0,但仍然可以转移 ERC-721 标准的 NFT。而计算购买 NFT 的价格的计算公式为 totalPrice = _pricePerItem * _quantity,因此购买 NFT 的价格被计算为 0,导致了在市场上的所有 ERC-721 标准的 NFT 均可被免费购买。
58COIN永续合约大户持仓情况20:00播报:截至20:00,据58COIN官方永续合约数据,大户持仓情况如下:
BTC永续合约账户中,多头平均持仓比例为15.43%、空头平均持仓比例为15.45%,空头暂时领先,领先数量(净头寸数量)为0.01万个BTC。
EOS永续合约账户中,多头平均持仓比例为19.26%、空头平均持仓比例为19.34%,空头暂时领先,领先数量(净头寸数量)为6.11万个EOS。
ETH永续合约账户中,多头平均持仓比例为18.52%、空头平均持仓比例为19.23%,空头暂时领先,领先数量(净头寸数量)为0.55万个ETH。[2020/10/14]
攻击交易分析
此处仅展示一个攻击交易的细节,其余攻击交易的手法都一致,不再赘述。
攻击交易:
https://arbiscan.io/tx/0x82a5ff772c186fb3f62bf9a8461aeadd8ea0904025c3330a4d247822ff34bc02
攻击者:
0x4642d9d9a434134cb005222ea1422e1820508d7b
攻击细节:
可以从下图中看到,攻击者调用了 TreasureMarketplaceBuyer 合约中的 buyItem 函数,并使传入的 _quantity 参数为 0。
可以看到代币转移均为 0,攻击者并没有付出任何成本就成功购买了 tokenID 为 3557 的 NFT,整个攻击流程与上面的漏洞细节分析中所讲的一致。
总结
本次漏洞的核心在于进行 ERC-721 标准的 NFT 转移前,缺少了对于传入的 _quantity 参数不为 0 的判断,导致了 ERC-721 标准的 NFT 可以直接被转移且计算价格时购买 NFT 所需费用被计算成 0。针对此类漏洞,慢雾安全团队建议在进行 ERC-721 标准的 NFT 转移前,需对传入的数量做好判断,避免再次出现此类问题。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。