专栏首页区块链入门【链安科技】无限授权转账漏洞

【链安科技】无限授权转账漏洞

2018年7月10日晚, 有相关安全公司创建并维护的智能合约风险列表仓库中接收到问题合约提交请求(漏洞报告者 xhyumiracle 来自长亭科技)。Lightcoin Token合约(合约地址:0xd97579Cea3fE2473682a4C42648134BB982433B9)的授权转账方法存在漏洞,授权账户可无限转出被授权账户的金额,并且,授权账户可以利用这个漏洞给任意账户授权。

Lightcoin 合约的 transferFrom() 函数,即授权转账函数,在执行完转账后本该修改授权金额,减去已转出部分金额。但这一步骤中把这授权账户地址写错了,也就是将allowed[_from][msg.sender] -= _value; 误写成了 allowed[_from][_to] -= _value;,进而引发了漏洞。

注:_from 地址为被授权地址,实际转出 Token 的地址;_to 地址为转账接收地址;msg.sender 为当前操作账户地址,也就是,授权账户地址。

该安全公司的小伙伴迅速分析了该漏洞指出,这个漏洞引发的后果有两方面:

授权账户在完成授权转账后,其被授权的金额不会改变,也就是说,授权账户可以无限转出被授权账户的金额。

转账完成后实际修改的是这笔转账接收地址(to)对于被授权账户 _from 的授权转账金额,但是由于对 allowed[_from][_to] -= _value;操作并没有做溢出校验,可以利用溢出来给 _to 地址巨额的授权。

若 _to 地址原本就有授权,那么授权金额可能减小,也溢出为一个极大的值。

若 _to 地址原本没有授权,即 allowed[_from][_to 值为 0, 就可以利用溢出获得这个被授权地址(_from 地址)的授权,一旦授权后,就可以无限转账。

据悉,Lightcoin 项目方已获知该漏洞并已完成合约升级工作,提醒广大持币用户不必恐慌,做好升级工作即可。

目前问题合约已作废:0xd97579Cea3fE2473682a4C42648134BB982433B9

升级后新合约地址为:0x1295b55fA04FBAc6d9e7c351Ecb3486e88129027

根据相关安全公司风险监控平台显示,存在相同漏洞的合约共 9份,强烈建议各个项目方和交易所及时做好自查工作。下图为该问题的合约地址(出于对项目方的保护,合约地址已部分马赛克)。

本文转载自《无限授权转账漏洞》,版权属于原作者,已获得授权

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Fomo玩法加持的PixelMaster为什么火了?

    导读:本文介绍了EOS上最近火了的PixelMaster,以及其前身Reddit Place这个曾经掀起一阵波澜的社会实验型游戏。而早在半年前ETH上已有十余个...

    辉哥
  • 【Sphinx评级】从商业到技术全面评估EOS项目

    Eos 为区块链奇才 bm (daniel larimer)领导开发的类似操作系统的区块链架构平台,旨在实现分布式应用的性能扩展。eos 提供帐户、身份验证、数...

    辉哥
  • 如何做区块链项目测试?

    ● 稳定性、可靠性、持续性。因为它是一个分布式的网络架构,没有一个中心节点可以被打击或者攻击,所以在整体的技术布置方面有着更强的稳定性、可靠性和持续性。

    辉哥
  • Caffe 源码 - BatchNorm 层与 Scale 层

    在Caffe 中,一般一个 BatchNorm 层后接 一个 Scale 层,例如:

    AIHGF
  • 反射跨站脚本(XSS)示例

    如何利用它? 原来的要求如下: ? 应用程序的回应非常清楚。用户ID为空(空)。我们没有为它指定一个值。 ? 我们有XSS。有效负载未被应用...

    奶糖味的代言
  • AIDL源码解析in、out和inout

    为什么会想写这篇文章,只因为一个error idl.exe E 4928 5836 type_namespace.cpp:130] 'Book' can be ...

    静默加载
  • 带你用Python解读高考数据:全国哪里的高校最多?什么专业最热门?

    我们搜集整理了自1977年恢复高考以来到2019年,这四十多年来高考人数、录取人数和录取率的数据。

    CDA数据分析师
  • 三个数的和小于等于k

    给一个数组以及一个数K, 从这个数组里面选择三个数,使得三个数的和小于等于K, 有多少种选择的方法?(不包括重复的情况) Example: Input: nu...

    echobingo
  • 外企工作必备英语日积月累 -2020年10月26日,星期一

    stakeholder 这个词原义为:a person with an interest or concern in something, especially...

    Jerry Wang
  • Elasticsearch集群Shard Allocation机制

        Elasticsearch由一些Elasticsearch进程(Node)组成集群,用来存放索引(Index)。为了存放数据量很大的索引,Elastic...

    腾讯云时序数据库团队

扫码关注云+社区

领取腾讯云代金券