震惊!利好变利空,烧币也能作假!

SECBIT实验室 安比技术社区 2018-07-25 18:18

安比(SECBIT)实验室发现极罕见的由乘方运算导致整数溢出,进而引发虚假烧币的安全漏洞。

7 月 5 日,安比(SECBIT)实验室发现 OnPlace (OPL) Token 合约中存在整数溢出漏洞(CVE-2018-13151 fake-burn)。该合约烧币功能存在乘方运算可导整数溢出,通过精心构造指数,使得烧币的实际值为零(虚假烧币)。

黑客可通过构造攻击参数,在自身余额并不减少的情况下,触发烧币 Burn() 事件。

安比(SECBIT)实验室已于 7 月 16 日尝试邮件联系项目方,对方尚无反馈。

建议项目方立即废弃该合约,并重新发布修复后合约。DApp 开发者和项目方切勿信任此合约的烧币 Burn() 事件。

问题合约地址:0x12AC8d8F0F48b7954bcdA736AF0576a12Dc8C387

OPL Token 目前并未上线交易所,但目前仍有较活跃的交易,疑似处于众筹阶段。

Image


问题合约代码 burnWithDecimals() 函数中 10 ** _dec 这一乘方操作存在整数溢出漏洞,可使计算结果为 0。若 _dec 传入值大于 255,则最终 _value 值会被更新为 0


Image


黑客可通过构造攻击参数,在自身余额并不减少的情况下,触发烧币 Burn() 事件。如果有 DApp 监听此事件并根据燃烧通证的数值进行下一步操作,黑客则完成了虚假烧币操作,后果将十分严重。

安比(SECBIT)实验室提醒开发者,乘方操作极易发生溢出,而常见 SafeMath 只涉及了加减乘除操作,开发者使用时应当慎之又慎。

事实上此合约还存在其他问题,如 burnWithDecimals() 中的乘法操作也没有做整数溢出防护,emission() 函数也有类似问题。

另外安比(SECBIT)实验室风险监控平台显示,存在同样问题的合约还有一个。

Image

该问题已收录至 智能合约风险列表, 该列表由安比(SECBIT)实验室发起共建并持续维护,我们将不间断更新问题 Token 合约信息 [1]。

智能合约风险列表仓库地址 https://github.com/sec-bit/awesome-buggy-erc20-tokens

安比(SECBIT)实验室再次呼吁,项目方发行 Token 一定要慎之又慎,遵守智能合约安全开发规范,引入安全审计流程,必要的时候采用形式化验证 手段,确保万无一失。

智能合约形式化验证示例:https://github.com/sec-bit/tokenlibs-with-proofs

参考文献

[1] 智能合约风险列表(awesome-buggy-erc20-tokens) https://github.com/sec-bit/awesome-buggy-erc20-tokens


往期文章回顾

以太坊标准接纳中国团队安全建议 -- EIP827安全事件跟踪

构造形式化证明,解决智能合约安全问题——你的合约亟待证明

安⽐(SECBIT)实验室携⼿路印(Loopring)共同发布智能合约风险列表


以上数据均由安比(SECBIT)实验室提供。合作交流请联系info@secbit.io。


安比(SECBIT)实验室


安比(SECBIT)实验室专注于区块链与智能合约安全问题,全方位监控智能合约安全漏洞、提供专业合约安全审计服务,在智能合约安全技术上开展全方位深入研究,致力于参与共建共识、可信、有序的区块链经济体。


安比(SECBIT)实验室创始人郭宇,中国科学技术大学博士、耶鲁大学访问学者、曾任中科大副教授。专注于形式化证明与系统软件研究领域十余年,具有丰富的金融安全产品研发经验,是国内早期关注并研究比特币与区块链技术的科研人员之一。研究专长:区块链技术、形式化验证、程序语言理论、操作系统内核、计算机病毒。


安比(SECBIT)实验室

info@secbit.io

Image


点击“阅读原文”查看更多精彩文章

Read more
Modified on 2018-09-10

Scan to Follow