
OpenSea平台存在一处漏洞,导致黑客能以远低于市场价获取高价值NFT,致使原始所有者损失数十万美元。
该漏洞在OpenSea上存在了多久?
据悉,该漏洞已在平台上持续数周。例如,Twitter用户Carson Turner声称于1月2日利用此漏洞,以@ACYCapital身份获取了其Bored Ape Yacht Club NFT。另有观点认为该漏洞最早于12月31日被发现。
与Carson Turner类似,另一位Twitter用户在1月13日也提及该漏洞,并分享了规避方法:
重要提示!请转发以传播信息。
他们的合约中存在一个OpenSea漏洞(令人震惊),允许人们利用旧的挂单直接从你手中购买NFT。以下是事件经过及防范建议:
1/— ginotheghost.eth (@GinoTheGhost) 2022年1月13日
攻击详情
恶意人士大规模利用此漏洞的事件发生在1月23日至24日。据区块链分析公司Elliptic统计,该漏洞被利用约8次,导致价值超100万美元的NFT被盗。
攻击者以0.77 ETH(约1,760美元)购入Bored Ape Yacht Club #9991,随后迅速以84.2 ETH(约192,400美元)转手卖出,获利超19万美元。相关出售账户在OpenSea上12小时内收到超400 ETH付款,折合金额逾90.4万美元。
漏洞是如何被利用的?
软件开发者Rotem Yakir指出,该漏洞源于NFT智能合约信息与OpenSea界面显示不一致。攻击者利用了存在于区块链上但在OpenSea前端不可见的旧合约。
核心机制在于挂牌价格与二级市场价格的确立方式。OpenSea用户上架NFT时设定挂牌价,买家接受后NFT自动转移。若卖家想重新上架,需取消原挂牌价。但因Gas费用高昂,许多人选择将NFT转移至另一钱包再转回,而非执行取消操作。此举导致尽管OpenSea界面价格更新,但区块链上的原始挂牌价仍保持活跃。此外,这些信息可通过OpenSea API获取。
事件发生后,OpenSea推出了名为“Listing Manager”的新功能以应对挂牌价格问题:
正在发生的事情:
很久以前创建的挂单在物品重新转入挂单人钱包时再次出现。
我们做了什么:
我们无法为挂单人取消这些订单,因此为了解决这个问题,我们今天推出了一个新的挂单管理器。— OpenSea (@opensea) 2022年1月24日

