严重getToken函数随意印币漏洞 :任何人可给自己的账号虚增余额

SECBIT实验室
SECBIT实验室 机构得得号

Aug 01, 2018 聚焦智能合约安全审计和形式化验证。

摘要: AMORCOIN (AMR) Token 合约存在致命漏洞,任何人都可以随意增加其账户上的 Token 余额。这也提醒了项目方,发行 Token 一定要慎之又慎,遵守智能合约安全开发规范,引入安全审计流程,必要的时候采用形式化验证手段,确保万无一失。

在最近一次漏洞监控扫描中,我们发现,AMORCOIN (AMR) Token 合约存在致命漏洞,任何人都可以随意增加其账户上的 Token 余额。

合约地址:0x14fb4c93fe461ec3f9f22b61ab7030f258867969
安比(SECBIT)实验室小伙伴分析合约源码后发现,该合约中存在一个函数 getToken(),该函数的作用是给调用者的账户余额增加数量为 value 的 Token,value 值由调用者传入。通常合约中增发 Token 的函数仅 owner 可以调用,但是不幸的是,该合约中 getToken() 函数并未设置调用权限,并且该方法未标明可见性,默认为 public,也就是说,任何人都可以通过调用这个函数来任意增加自己账户上的 Token。

另外,通过这个函数增发 Token 后并没有修改 totalSupply 的值,间接导致了所有账户余额总和与合约标明的总量不一致,就是说totalSupply 的值并非 Token 的真实总量。

目前该项目处于公募阶段。根据 etherscan 显示,AMORCOIN (AMR) Token 交易量总计 306 笔,其最近一次交易在不到一天前,为交易较为活跃的合约。

安比(SECBIT)实验室已于第一时间向项目方发出预警提示。据悉,派盾(PeckShield)团队也独立发现了该问题。另外安比(SECBIT)实验室风险监控平台显示,存在同样问题的合约还有两个。

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

https://github.com/sec-bit/awesome-buggy-erc20-tokens

安比(SECBIT)实验室已于第一时间向项目方发出了告警提示,提醒项目方应立刻采取措施,及时做好补救工作。我们同时也请普通持币用户保持警惕。安比(SECBIT)实验室再次呼吁,项目方发行 Token 一定要慎之又慎,遵守智能合约安全开发规范,引入安全审计流程,必要的时候采用形式化验证 手段,确保万无一失。

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

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 SECBIT实验室 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信