7月12日,成都链安科技(LianAn Technology)智能合约审计小组使用自主研发的VaaS平台对以太坊链上智能合约进行安全审计的过程中,发现了3份合约存在新的安全漏洞。此漏洞是合约构造函数constructor()使用不当从而导致Owner权限被盗。
问题描述
以太坊solidity0.4.22引入了新的构造函数声明形式constructor(),该函数引入的目的是避免编程人员在编写构造函数时的命名错误 (如6月22日,MorphToken事件中“Owned”被写成“owned”,没有注意大小写,使owned函数成为一个普通函数,导致任何账户都能调用它,更改owner变量,转移合约所有权)。
然而,由于用户编写函数时习惯性的使用function进行声明,从而导致构造函数constructor的使用引入新的漏洞。
正确的构造函数形式:constructor() public { }
错误的构造函数形式:function constructor() public { }
成都链安科技使用 VaaS平台对以太坊区块链上智能合约进行了分析,发现如下3份智能合约存在constructor函数使用不当导致Owner权限被盗的问题。
3份合约地址如下,请项目方自查,或与我们取得联系:
▲合约部分地址