AMR 合约漏洞解析

SECBIT实验室 安比技术社区 2018-07-08 19:43

2018年7月8日,降维安全实验室(johnwick.io)监控到 AMMBR (AMR) 合约存在高危安全风险的交易。该合约存在溢出漏洞,黑客可以利用批量转账方法无限转出 Token。

合约地址:https://etherscan.io/token/0x96c833e43488c986676e9f6b3b8781812629bbb5

安比实验室小伙伴迅速分析了合约源码发现,该问题与早前的BEC Token 合约的问题 如出一辙。在批量转账函数 multiTransfer() 中,有一个变量 totalTokensToTransfer 表示转出 Token 总量,是通过将所有的tokens[i] 累加起来计算出来的,并且合约中校验了余额是否大于 totalTokensToTransfer

Image

乍一看,该函数对msg.sender 账户的余额做了校验,并没有什么问题。但是当 tokens[i] 的总和足够大,大到使得 totalTokensToTransfer 值溢出,而变成一个很小的值。若这个值小于 balances[msg.sender] 时,就可以绕开校验,转出比余额更多的Token。

该合约部署于19天前,线上交易数量为256 笔,最近一次交易在11个小时前,为交易较为活跃的合约。

Image

该 Token 已经上线交易所,并且至今仍有活跃交易。

Image

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

安比实验室提醒项目方和交易所应立刻采取措施,及时做好补救工作,普通持有用户也请保持警惕。同时我们再次呼吁,项目方发行 Token 一定要慎之又慎,对合约代码进行详细检查,务必做好测试和审计工作,必要时寻求专业的审计团队对合约进行审计,防患于未然。

参考文献

[1] 突发 | 紧急!AMR合约风险预警 可随意增发且已被黑客利用 https://www.jinse.com/lives/38911.htm
[2] SECBIT: 美链(BEC)合约安全事件分析全景 https://blog.csdn.net/Secbit/article/details/80045167
[3] 智能合约风险列表(awesome-buggy-erc20-tokens) https://github.com/sec-bit/awesome-buggy-erc20-tokens
[4] 安⽐(SECBIT)实验室携⼿路印(Loopring)共同发布智能合约风险列表 https://mp.weixin.qq.com/s/XbXlrmt0fi9IgxicmdAF0w


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


安比(SECBIT)实验室


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


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


安比(SECBIT)实验室

info@secbit.io

Image
Modified on 2018-09-10

Scan to Follow