严重getToken函数随意印币漏洞 :任何人可给自己的账号虚增余额
摘要: 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
评论(0)
Oh! no
您是否确认要删除该条评论吗?