7月10日晚, 安比(SECBIT)实验室创建并维护的 智能合约风险列表 仓库中接收到问题合约提交请求(漏洞报告者 xhyumiracle 来自长亭科技)。Lightcoin Token合约(合约地址:
0xd97579Cea3fE2473682a4C42648134BB982433B9)的授权转账方法存在漏洞,授权账户可无限转出被授权账户的金额,并且授权账户可以利用这个漏洞给任意账户授权。
Lightcoin 合约的transferFrom()
函数,即授权转账函数,在执行完转账后本该修改授权金额,减去已转出部分金额。但这一步骤中把授权账户地址写错了,也就是将allowed[_from][msg.sender] -= _value
; 误写成了allowed[_from][_to] -= _value
;,进而造成了失误。
注:_from
地址为被授权地址,实际转出 Token 的地址;_to
地址为转账接收地址;msg.sender
为当前操作账户地址,也就是授权账户地址。
安比(SECBIT)实验室小伙伴迅速分析了该漏洞指出