TreasureDAO 安全漏洞的分析

KingData ·2022-03-07

TreasureDAO 是部署在流行的第 2 层解决方案 Arbitrum 上的 NFT 应用程序,于 2022 年 3 月 3 日遭到攻击。
由于 2021 年各种第 2 层解决方案的快速发展,针对部署在第 2 层解决方案上的应用程序的攻击不会像在区块链主网上发生的那样频繁。可以研究的真实案例很少。因此,Fairyproof 密切关注此事件,并关注其团队的进展和更新。
以下是有关此事件的一些基本信息:
攻击者的地址是0x4642D9D9A434134CB005222eA1422e1820508d7B,
被攻击的合约部署在:
Arbitrum上的 0x812cda2181ed7c45a35a691e0c85e231d218e273。
被利用的漏洞位于“TreasureMarketplace.sol”合约的“buyItem”函数中。这是代码部分:

在“buyItem”函数中,“listedItem.quantity”是卖价,“_quantit”是卖价。一个正确的实现应该要求后者等于或大于前者。然而,现有的实现“require(listedItem.quantity >= _quantity, “not enough quantity”);” 没有达到这个要求。因此,如果“_quantit”设置为“0”,即“_quantit = 0”,则投标人可以成功购买 NFT。
这是一个攻击交易,其哈希值为:
0x741f9bc0fb0d995fcf2453ea18c424111c3c3f366f1a617ac37cd6128e75b15f。
该交易的详细信息如下:

有五个参数,其中第四个是“_quantity = 0”,被利用来成功攻击。
到目前为止,已经有近百个 NFT 在此事件中被利用。
这个漏洞被 Fairyproof 归类为实现漏洞。如果代码经过彻底的测试或由专业的安全团队审核,则不应忽视这一点。
Arbitrum 与 EVM 兼容,几乎所有发生在以太坊智能合约上的安全综合症、问题或风险都可能发生在 Arbitrum 上部署的合约上。因此,如果对部署在 Arbitrum 上的应用程序进行仔细审核,则可以避免大多数发生在以太坊应用程序中的问题或风险。

© 本文著作权归 KingData 所有,未经 KingData 许可,不得转载使用

分类标签TreasureDAO