OnPlace(OPL) 合约中惊现虚假烧币漏洞 (CVE-2018-13151)

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

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

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

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

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

问题合约地址:0x12AC8d8F0F48b7954bcdA736AF0576a12Dc8C387

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

这里写图片描述

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

这里写图片描述

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

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

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

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

地址合约名称交易量
0x745Fa4002332C020f6a05B3FE04BCCf060e36dD3Quartex (QTX)2

该问题已收录至 智能合约风险列表, 该列表由安比(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

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


安比(SECBIT)实验室

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值