如何错误验证签名: 以NBA 数字藏品发行为例

  • BlockSec
  • 更新于 2022-04-21 12:35
  • 阅读 2250

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

漏洞的成因在于对白名单用户的签名校验有安...

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

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

2.jpg

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

点赞 1
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
BlockSec
BlockSec
江湖只有他的大名,没有他的介绍。