美文网首页区块链
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