Web3音乐平台Audius社区金库被盗过程全解析

Audius被黑了,价值约$6M的Audius token被盗,GoPlus Security安全分析专家对该事件黑客作恶过程进行了全面解析。

1)相关地址

Governance 合约
https://etherscan.io/address/0x4deca517d6817b6510798b7328f2314d3003abac… (Proxy)
https://etherscan.io/address/0x35dd16dfa4ea1522c29ddd087e8f076cad0ae5e8… (Impl)

Staking合约

https://etherscan.io/address/0xe6d97b2099f142513be7a2a068be040656ae4591… (Proxy)
https://etherscan.io/address/0xea10fd3536fce6a5d40d55c790b96df33b26702f… (Impl)

DelegateManagerV2合约
https://etherscan.io/address/0xf24aeab628493f82742db68596b532ab8a141057…

黑客EOA
https://etherscan.io/address/0xa0c7bd318d69424603cbf91e9969870f21b8ab4c

2) 完整的攻击路径:

篡改投票参数 -> 提交恶意提案 -> 篡改自己的投票权重 -> 为恶意提案投票 -> 执行提案

3)调用Governance初始化篡改投票参数

将votePeriod和Delay设置为3和0,这样只需要经过3个区块后投票就可以出结果。将_votingQuorumPercent设置为1%,意味着只需要有总质押数的1%即可通过提案。

BlockSec:https://tools.blocksec.com/tx/eth/0xfefd829e246002a8fd061eede7501bccb6e244a9aacea0ebceaecef5d877a984

4)向Governance提交恶意提案(编号为85)

调用submitProposal(),其中 _functionSignature = transfer(address,uint256),address是攻击者,数量为18,564,497,819,999,999,999,735,541,_targetContractRegistryKey= 307800..00(在registry合约中对应项目token地址)。提案成功将执行token的transfer

5) 篡改自己的投票权重


_quorumMet()方法会检查投票是否达到额定人数,如果不到则无法出结果,不论是批准还是否决。黑客需要增加自己的权重来通过该检查。

Web3音乐平台Audius社区金库被盗过程全解析

6)在DelegateManagerV2中先调用初始化,将自己设置为governanceAddress,该地址有权限进行delegatestake。


调用delegatestake(),可以看到该函数对_amount没有检查,是随意输入的数字。黑客输入了特别大的数字。这样他只需要投票yes就可以达到额定人数。

Web3音乐平台Audius社区金库被盗过程全解析

Web3音乐平台Audius社区金库被盗过程全解析

7)黑客调用Governance中的submitVote()为85号提案投赞成票,此时区块编号为15201796
https://etherscan.io/tx/0x3c09c6306b67737227edc24c663462d870e7c2bf39e9ab66877a980c900dd5d5

8)黑客调用Governance中的evaluateProposalOutcome()方法为85号提案结算,此时区块高度为15201799,已经过了他设置的3个区块的投票窗口,也达到了额定人数,也只有他进行了投票(赞成票),提案自然通过,并自动执行提案中提交的方法,也即向黑客打币。

BlockSec:https://tools.blocksec.com/tx/eth/0x4227bca8ed4b8915c7eec0e14ad3748a88c4371d4176e716e8007249b9980dc9

Web3音乐平台Audius社区金库被盗过程全解析

目前Audius官方回应已发现问题并进行修复,修复完成前Token余额、转账等暂时不可用,GoPlus Security提醒广大用户注意规避风险。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章