http://www.7klian.com

Bancor安详事件阐明:简朴裂痕激发50万美元资产转移,代码审计或存问题

原文标题:《成都链安:Bancor Network 裂痕事件阐明》

既然只是在 handleSourceToken 函数中挪用,那么显然是没有须要配置成 public 权限,且按照业务来看,Bancor Network 的主要浸染是用于代币互换,并不需要用户主动挪用 safeTransferFrom,也就没有须要将 safetransferFrom 配置为 public 权限。于是我们比拟了合约中其他的几个函数,这几个函数均被配置成了 public 权限。如下图所示:

「0x624f」开头的地点对 Bancor Network 合约授权了 900000000000000 个 ONG 代币,此额度已经高出了 ONG 的刊行量,相当于将「0x624f」所拥有的 ONG 代币全部授权给 Bancor Network 合约。而跟踪「0x624f」开头地点的生意业务我们发明,在举办完代币兑换后,未利用完所有授权额度,但并未将授权额度收回。

safeTransferFrom 函数内部挪用了 execute 函数。而 execute 函数的成果是挪用 safeTransferFrom 参数中的_token 代币智能合约的 transferFrom 函数举办署理转账。execute 函数源码如下图所示:

裂痕爆出后,成都链安安详团队第一时间对本次事件举办跟踪阐明,按照链上阐明功效发明,此次事件中裂痕发生的主要原因是智能合约 Bancor Network 存在一个挪用权限为 public 的函数 safeTransferFrom,通过挪用此函数,可以将用户授权给智能合约 Bancor Network 的资金转出到任意地点。

别的两个果真邮箱信息的地点:

0x052ede4c2a04670be329db369c4563283391a3ea

0x8dfeb86c7c962577ded19ab2050ac78654fea9f7

EtherScan 已经将存在此裂痕的合约举办标注,如下图所示

0x923cab01e6a4639664aa64b76396eec0ea7d3a5f

0x5f58058c0ec971492166763c8c22632b583f667f

也于同一时间操作此裂痕对用户资金举办转移,别离转出资金131,889 和2346。

二、道理阐明

Bancor Network 本次爆出的裂痕,是一个较为简朴的裂痕,此类裂痕在代码审计进程中十分容易被发明,但此次裂痕的影响却很大,上线仅两天,涉及的资金就已经高出 50w 美元。幸而 Bancor Network 团队实时发明并修复了裂痕,不然效果不堪设想。成都链安-安详研究团队在此提醒各大智能合约运营商,因合约陈设后不行变动的特性,比拟传统软件,上线前做好充实的代码审计十分重要,此次事件虽未造成太大的经济损失,但势必会让用户对 Bancor Network 团队产物的安详性发生质疑。

此次事件中,存在裂痕的合约地点主要有如下三个:

由源码可以知,该函数为一个 public 函数,具体代码如下图所示:

以上就是本次事件裂痕的道理阐明,该裂痕的道理十分简朴,是因为函数的挪用权限配置错误,将本应该只有合约自己挪用的函数,配置成了任何人都可以挪用。而当 Bancor Network 拥有用户的授权额度时,任何人都可以通过挪用 safeTransferFrom 函数,以 Bancor Network 的身份对用户的资金举办署理转账。

2020-06-18(文中所提实时间均为 UTC 时间),上的智能合约 Bancor Network 被爆出存在严重裂痕。该裂痕由 Bancor Network 团队和白帽最先发明,并第一时间对存在被盗风险的资金举办了转移,涉及资金 50W 余美元。

别的也提醒宽大用户和运营商,在授权资金给第三方合约时,都应保持审慎,切不行盲目相信「大公司」,对任何合约的授权都该当承袭最小原则,不要使本身的资金安详把握在他人手中。

我们通过一笔链上生意业务可以清晰的看到挪用此函数的详细浸染。如地点「0xc802」提倡一笔生意业务,挪用了智能合约「0x5f58」(也就是 Bancor Network)的 safeTransferFrom 函数,使地点」0x8a39」中的 0.000000000000000003 代币 MFG 发送到」0x2955」(图中的「Bancor:White Hat S…),详细如下图所示:

2020-06-18 3:06:48,Bancor Network 团队操作此裂痕对存在被盗风险的用户资金举办转移,停止 2020-06-18 6:56,Bancor Network 团队共计转移资金约合409,656。

Bancor Network 团队也已对此次事件做出了回应,

2. Bancor Network 合约的主要成果是代币转换,并非一个钱包,为什么用户会有未利用的授权。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读