NFT合约安全风险剖析:2022上半年事件回顾与审计要点

NFT合约安全分析:2022年上半年事件回顾与常见问题探讨

2022年上半年,NFT领域安全事件频发,造成了巨大的经济损失。据统计,这半年内共发生10起重大NFT安全事件,总损失高达6490万美元。攻击手段主要包括合约漏洞利用、私钥泄露和钓鱼等。值得注意的是,Discord平台上的钓鱼攻击尤为猖獗,几乎每天都有服务器遭受攻击,导致大量用户因点击恶意链接而蒙受损失。

上半年NFT安全事件分析:哪些典型案列值得我们警惕?

典型安全事件分析

TreasureDAO事件

3月3日,TreasureDAO交易平台遭遇攻击,超过100个NFT被盗。问题出在TreasureMarketplaceBuyer合约的buyItem函数上。该函数在计算总价时未对代币类型进行判断,直接将数量与单价相乘。这导致攻击者可以在ERC-20代币支付额为0的情况下,调用TreasureMarketplace合约的buyItem函数购买代币。

根本原因是ERC-1155和ERC-721代币混用引发的逻辑混乱。ERC-721代币本身没有数量概念,但合约却用数量计算购买价格,且在最终转账实现中未进行逻辑分离。

APE Coin空投事件

3月17日,黑客通过闪电贷获取了超过6万枚APE Coin空投。问题出在AirdropGrapesToken空投合约上。合约使用alpha.balanceOf()和beta.balanceOf()判断调用者对BAYC/MAYC NFT的所有权,但这种方式只能获取用户对NFT所有权的瞬时状态,而这个状态可以通过闪电贷操纵。攻击者正是利用这一漏洞,通过闪电贷借入BAYC NFT并获取相应空投。

Revest Finance事件

3月27日,Revest Finance项目遭受攻击,损失约12万美元。这是一起典型的ERC-1155重入攻击。问题出在Revest合约中。当用户使用depositAdditionalToFNFT()追加FNFT抵押资产时,合约需要先销毁旧FNFT,再铸造新FNFT。然而,铸造过程中min()函数未检查需铸造的FNFT是否已存在,且fnftId状态变量自增在_mint()函数之后。而_min()中存在ERC-1155的隐藏外部调用_doSafeTransferAcceptanceCheck(),这就造成了重入漏洞。

NBA薅羊毛事件

4月21日,NBA项目遭遇攻击。问题出在The_Association_Sales合约的签名验证机制上。主要存在两个安全隐患:签名冒用和签名复用。签名复用是因为合约未存储已使用的签名,导致攻击者可多次重复使用同一签名。签名冒用则是因为vData memory参数info在传参时未进行msg.sender校验,使得签名可被冒用。

Akutar事件

4月23日,NFT项目Akutar的AkuAuction合约因漏洞导致11539ETH(约3400万美元)被锁死。合约存在两个逻辑漏洞:

  1. 退款函数processRefunds使用call函数进行退款,并将退款结果作为require判定条件。攻击者可在fallback中恶意revert,导致整个合约退款操作无法进行。
  2. 退款函数中的两个判断条件未考虑用户可投标多个NFT的情况,导致项目方后续退款操作永远无法执行。

XCarnival事件

6月24日,NFT借贷协议XCarnival遭攻击,黑客获利3087枚以太坊(约380万美元)。问题出在XNFT合约的pledgeAndBorrow函数上。该函数在质押NFT时未检查攻击者传入的xToken地址是否在项目白名单中,且在借贷时未对抵押记录状态进行检测,导致攻击者可反复使用无效抵押记录进行借贷。

上半年NFT安全事件分析:哪些典型案列值得我们警惕?

NFT合约审计常见问题

  1. 签名冒用和复用:

    • 签名数据缺少重复执行验证,如缺少用户nonce,导致可重复使用签名数据铸造NFT。
    • 签名检查不合理,如未检查签名者为零地址的情况,导致任意用户均可通过检查进行铸币。
  2. 逻辑漏洞:

    • 合约管理员可通过特殊方式铸币而不受总量限制,导致NFT实际量超过预期。
    • NFT拍卖时,获胜者可利用交易顺序依赖攻击修改竞拍价格,低价获取NFT。
  3. ERC721/ERC1155重入攻击:

    • 使用转账通知功能(onERC721Received函数)时,NFT合约向转账目标合约发送调用可能导致重入攻击。
  4. 授权范围过大:

    • 质押或拍卖时要求_operatorApprovals授权,而非单个代币授权,增加NFT被盗风险。
  5. 价格操控:

    • NFT价格依赖某合约的代币持有量,攻击者可利用闪电贷拉高代币价格,导致质押NFT被异常清算。

鉴于NFT合约安全事件频发,且审计过程中发现的漏洞往往与实际攻击相符,寻求专业安全公司对NFT合约进行全面审计显得尤为重要。

上半年NFT安全事件分析:哪些典型案列值得我们警惕?

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 转发
  • 分享
评论
0/400
破产豆豆vip
· 23小时前
合约又出事咯 谁还敢买啊
回复0
CryptoNomicsvip
· 23小时前
*sigh* 应用马尔科夫链分析,这些黑客与糟糕的合同审计显示出73.4% 相关性。统计上不可避免。
查看原文回复0
blockBoyvip
· 23小时前
啧 天天都在漏洞
回复0
无常亏损收藏家vip
· 23小时前
唉 几千万刀就这么蒸发了 真替割肉的老哥心疼
回复0
SorryRugPulledvip
· 23小时前
又被dc钓鱼干烂了
回复0
GweiTooHighvip
· 23小时前
又见合约被薅 没完没了了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)