快捷搜索:  网络  渗透  后门  CVE  扫描  木马  黑客  as

Parity多重署名函数库自尽漏洞

-1.png

媒介

2017年7月19号发生的 Parity 多重署名合约delegatecall漏洞(Parity Multisig Wallet delegatecall)事故以后,2017年11月6号再次发生了 Parity 多重署名函数库自尽漏洞事故(Parity Multi-Sig Library Self-Destruct)事故。此次漏洞影响587个钱包,包含了 513,774.16 Ether($152 million)。

一名鸣做 devops199 的开发者能够让本人成为函数库合约的 owner,然后有调用自尽功能,使得合约所有功能、通证均失效。以后,devops199 在 github 提交了 issue,说出了一句经典的话 I accidentally killed it.

0.png

◆ 阐发 

Parity Multisig Wallet delegatecall 漏洞以后,官方修复了这个漏洞,

地址在:

https://etherscan.io/address/0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4#code

https://github.com/paritytech/parity/pull/6103/files。

修复要领就是在init*函数加上only_uninitialized modifier 判定,当 m_numOwners 0 时这个函数就不能使用。

666.png

然则仍旧有缺点,因为函数库没有正确初始化,被行使方式以下:

① 所有的 Parity Multisig wallets 都使用单一的函数库:

https://etherscan.io/address/0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4#code 然则,这个函数库合约没有正确地初始化。

② 攻击者先获取owner权限,将调用函数的指令放在Data中。

恶意举动在:

https://etherscan.io/tx/0x05f71e1b2cb4f03e547739db15d080fd30c989eda04d37ce6264c5686e0722c9

123.png

③  然后获取调用kill函数

恶意举动在:

https://etherscan.io/tx/0x47f7cff7a5e671884629c93b368cb18f58a993f4b19c2a53a8662e3f1482f690

234.png345.png

④  导致两个效果: 

1)所有效户的以太币都被解冻。

2)很多使用这个钱包的合约引入地位都写死,导致很多合约不能运作,如在 Polkadot 里第 451 行就将钱包合约地址写死:

https://etherscan.io/address/0x3bfc20f0b9afcace800d73d2191166ff16540258#code

567.png因为所有逻辑判定都在钱包合约中,所以其他相依于钱包合约的现在以太币都被解冻,且看起来没法提款:

999.png

所有受影响的合约以下:

https://pastebin.com/ejakDR1f

◆防范

这次的事故 Parity 说明有两种防备方式。一种是智能合约不该有自尽的函数,如许即便黑客获患了权限也没法把合约移除。一种是有新的建议及改善时,要及时更新线上的合约或是找寻线上合约可能的漏洞,因为在这问题发生前,就有网友发起在合约部署时要自动呼鸣 initWallet(pr) 加強合约的安全

◆内陆复现

git clone

https://github.com/Martin2877/parity_kill_example.git # 下载复当代码

npm install # 装置组件

npm run start-block # 启动tesrRPC

# 关上新窗口

npm start # 运行测试代码

1.jpg

不成功的情形:

2.jpg

不成功,缘故起因是因为装置的testrpc为6.0.3,改用6.0.1可以解决。可以 `npm list –depth 0` 查看装置的包的情形。

◆资料

事故脉络:

https://medium.com/crypt-bytes-tech/parity-wallet-security-alert-vulnerability-in-the-parity-wallet-service-contract-1506486c4160

别的相干资料:

https://medium.com/chain-cloud-company-blog/parity-multisig-hack-again-b46771eaa838

https://paritytech.io/a-postmortem-on-the-parity-multi-sig-library-self-destruct/

https://paritytech.io/security-alert-2/

https://github.com/paritytech/parity/issues/6995

◆团队先容

BUGX.IO是一家致力于区块链领域的安全公司。核心团队组建于2014年,WEB黑客,我们在区块链生态安全、行业解决方案、安全建设、红蓝匹敌等方面有深挚积累与过硬专业素养。

*

您可能还会对下面的文章感兴趣: