Pigeoncoin公链通胀漏洞

admin 2021年7月25日06:56:28评论57 views字数 768阅读2分33秒阅读模式

点击蓝字  关注我们

01

前言

Bitcoin Core在9月18日发布的最新的版本0.16.3和0.17.0rc4中修复了一个较为严重的安全漏洞CVE-2018-17144,其可导致拒绝服务与严重的通胀。该漏洞最初是9月17日作为拒绝服务漏洞被发现的,接着立即汇报给了Bitcoin Core的几个核心开发者以及ABC、Unlimited等相关支持加密货币项目。但很快安全人员发现该漏洞实际上是一个通胀漏洞,并将其修复!

02

漏洞分析

存在漏洞代码片段如下:

Pigeoncoin公链通胀漏洞

这段代码位于src/validation.cpp中的CheckBlock()函数,该函数在节点接收到新的区块时被调用

Pigeoncoin公链通胀漏洞

CheckTransaction()函数对于传入的交易消息(CTransaction& tx)进行检测,检查交易是否发生双花。检测方案非常简单,把交易中所涉及到的coin(即代码中的txin.prevout,代表比特币交易中的UTXO)记入std::set中,如果发现记录了俩次,就会返回处理失败的信息(state.DoS),最终消息会通过P2P信道,反馈给该区块的发送者。基于代码段中的备注部分,可以看出,这段检测代码在被CheckBlock()函数的调用过程中被认为是冗余和费时的,并通过将函数的第三个参数设置为False的方式,使其跳过。CheckBlock()执行选择跳过双花检查,是由于其后续会对于整个区块中的交易进行更为复杂而全面的检查。然而,这些检查代码未能像预期的那样对某些异常情况进行检测和处置,导致了漏洞的存在。

03

修复方案

if (!CheckTransaction(*tx, state, false))改为if (!CheckTransaction(*tx, state, true))

Pigeoncoin公链通胀漏洞


本文始发于微信公众号(IDLab):Pigeoncoin公链通胀漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月25日06:56:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Pigeoncoin公链通胀漏洞http://cn-sec.com/archives/357970.html

发表评论

匿名网友 填写信息