总论

团队通过 Ethereum 2015 - 2022 年的链上数据,119900个NFT合约、83100000个NFT Token 和 25900000个NFT相关合约项目(如Market) 做分析,得到如下结果:

  1. 19.0% 的NFT合约有越权漏洞
  2. 55.4%的NFT合约有issues( 包括重入漏洞等vulns )
  3. 有75个NFT合约发生过 sleepmint 攻击
  4. 61.8%的NFT合约过于中心化。( 无论是 vote token or 权限管理 )
  5. Wash Trading 在 NFT市场中泛滥

Off-chain Risk

19%的NFT Contract 中的所有tokenURI 无法访问

Untitled

On-chain Risk

链上NFT合约有14.9%没有开源,在开源的代码中,我团队发现的一些漏洞如下:

Akutar NFT 漏洞实例

重入漏洞

越权漏洞

越权漏洞举例

  1. 缺少NFT权限验证。如下图中_checkOpenTransfer函数没有返回True or False,不管有没有权限都能执行后面的 _safeTransfer

Untitled

Untitled

  1. 左图中的Burn函数 只验证了tokenid是否存在,未验证msg.sender是否有权销毁该tokenid.
  2. 下图中的ownerClaim函数给管理员开辟了一个无手续费的任意mint后门。可能造成非预期增发。