漏洞状态:DVP社区认领
DVP社区确认漏洞信息如下:
漏洞等级: 高危
奖励: 0.5 Ether
漏洞信息
漏洞编号 :
DVP-2018-13849
漏洞标题 :
Unitus public chain denial of service and double payment vulnerability
目标类型 :
PC client defect
攻击类型 :
Design defect/logic vulnerability
漏洞等级 :
高危
漏洞奖励 :
0.5 Ether
归属厂商 :
Unitus
白帽子ID :
中本聪
漏洞描述 :
漏洞URL:如果是Web就填写此项
https://github.com/unitusdev/unitus
简要描述:漏洞说明、利用条件、危害等
Unitus公链在CoinMarketCap中排名1340
存在漏洞代码片段如下:
在validation.cpp文件中没检查重复输入,可导致产生拒绝访问漏洞以及矿工可控制的双重支出漏洞。
具体可参考https://bitcoincore.org/en/2018/09/20/notice/
该漏洞是由于项目引用了bitcoin core存在漏洞的代码,导致也存在CVE-2018-17144漏洞,该漏洞的危害在上方链接中有详细说明。
Pigeoncoin也同样存在该漏洞(CVE-2018-17144),并已经被黑客攻击造成了实际危害。
https://bcsec.org/index/detail/tag/1/id/302
漏洞证明:
https://bcsec.org/index/detail/tag/1/id/302
漏洞利用代码:
关于双花攻击和拒绝服务攻击的PoC在这里可以看:https://bcsec.org/index/detail/tag/2/id/379
就不复制粘贴了
修复方案:
把
if (!CheckTransaction(*tx, state, false))
改为
if (!CheckTransaction(*tx, state, true))