NBA 数字藏品合约漏洞浅析:如何错误验证签名
BlockSec
2022-04-21 14:13
订阅此专栏
收藏此文章
合约没有保证白名单签名只能被特定用户使用而且只能使用一次,攻击者可以重用其他白名单用户签名铸造藏品。


原文标题:《如何错误验证签名: NBA 数字藏品发现为例》

撰文:BlockSec Team


NBA 最近发行了数字藏品,然而我们发现,其售卖数字藏品的合约存在非常严重的漏洞。攻击者(「科学家」)可以通过漏洞无成本铸造藏品然后出售获利。


漏洞的成因在于对白名单用户的签名校验有安全问题。具体来说,合约没有保证白名单签名只能被特定用户使用而且只能使用一次。因此,攻击者可以重用其他白名单用户签名铸造藏品。



从代码我们可以看出,verify 函数并没有将发送者地址放到签名中。另外,也没有机制保证该签名只能被使用一次。我们认为这一些安全实践是最基本的软件安全入门知识。我们非常惊讶这样的漏洞居然出现在非常知名的项目里面。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

BlockSec
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开