Mercurity.finance智能合约安全漏洞分析
今年美国大选虽说有了广泛意义上的尘埃落定,但竞选结果并未明确。
如今拜登团队宣布胜选,美国媒体纷纷宣布拜登当选下届美国总统。而另一方面,川普拒绝接受败选结果,他持续进行计票,并宣称要采取法律行动。
造成如今这个混乱结果的首要原因在于美国没有设立独立的对大选事务具有权力的权威性的选举委员会,在默认情况下,是新闻机构承担了这个角色。假如川普获得过大的权力,控制了大多新闻机构,营造虚假选票,结果尚未可知。
这就意味着某种程度上,可以说是极尽中心化的“推特治国”后的又一“媒体选举”。
从选举,到互联网,到区块链,2020年,中心化不再是权威的体现,而是“独断”、“专权”的代名词。
北京时间11月9日,CertiK安全研究团队发现DeFi项目Mercurity.finance智能合约代码部分存在中心化风险。
项目拥有者拥有过大权限,可以进行任意数目的铸币,并为给定账户提供任意数目的奖励。
技术步骤分析如下:
ERC20Token.sol
代码地址:
https://github.com/MER-DAO/MEE-core/blob/main/contracts/tokens/ERC20Token.sol
部署地址:
https://etherscan.io/address/0xe1b583dc66e0a24fd9af2dc665f6f5e48978e106#code
图一: ERC20Token智能合约构造函数
图二:onlyIssuer修饰词
图三: 具有铸币方法的issue函数
如图一所示,项目拥有者在ERC20Token.sol智能合约中的构造函数可以将自身设置为issuer身份。由于在智能合约部署时,其构造函数会被自动执行,因此项目拥有者会自动成为issuer。
通过图二中显示的onlyIssuer修饰词的限制,任意拥有issuer身份的外部调用者将可以执行任意被onlyIssuer修饰词修饰的函数。
因此,拥有issuer身份的项目拥有者可以执行图三中具有铸币方法的issue函数,从而可以为任意账户铸造任意数目的代币。
除此之外,该项目还存在一个允许项目拥有者提供代币奖励的后门。该后门存在与AwardContract.sol智能合约中。
AwardContract.sol
代码地址:
https://github.com/MER-DAO/MEE-core/blob/main/contracts/AwardContract.sol
部署地址:
https://etherscan.io/address/0x8Ea43ce113456f45defd0E27e809d719b9CA2362#code
图四:AwardContract智能合约构造函数
图五:onlyGovernor修饰词
图六:addFreeAward智能合约函数
当AwardContract.sol被项目拥有者部署到区块链上时,AwardContract合约的构造函数会被自动执行,也就意味着图四中43行代码被自动执行后,项目拥有者会自动被赋予governor身份。
拥有governor身份的外部调用者可以类似的执行任意被onlyGovernor修饰词修饰的智能合约函数,例如图六中所示addFreeAward函数。
由于所有外部调用者都可以通过调用图七中withdraw函数来将属于自己的奖励取出,因此当governor身份的外部调用者为某一个账户(假设为A)添加了某一数量的奖励后,A账户可以对该函数进行调用,并通过246行的判断条件检查后,通过在281行调用safeIssue()函数来取出被添加的奖励。
图7:withdraw智能合约函数
综上分析,Mercurity.finance项目中智能合约存在的后门漏洞均来自于项目拥有者权限过大。在该类中心化治理机制中,项目拥有者得到了可以随时获利或者摧毁项目经济系统的权利。
CertiK安全研究团队建议Mercurity.finance更新项目中采用的治理系统,引入社区管理的机制。
CertiK在此提醒广大用户:
1. 合约代码需要经过严格的安全验证和审计才可被允许公布。
2. 投资者在投资采用中心化治理机制的项目时需衡量风险,谨慎投资。
比推快讯
更多 >>- Terraform 律师反驳 SEC,称代币销售大部分发生在美国境外
- Coinbase 第一季度营收 16 亿美元,较上一季度增长 72%
- Block:拟每月将比特币产品毛利润的 10% 用于投资 BTC
- Tether与Chainalysis 合作开发用于监控二级市场活动的可定制解决方案
- 价值超7600万美元ETH从未知钱包转移到Coinbase Institutional
- Magic Eden宣布其BTC Diamond Retro申领已上线
- 以太坊 NFT 4 月份销售额 2.41 亿美元,为2023 年 10 月以来最低
- Jito 成为 Solana 上TVL最大的协议, 达 14 亿美元
- 摩根大通:加密市场抛售是由散户投资者推动的
- USDC Treasury新增铸造5000万枚USDC
- 一巨鲸以0.051美元价格购买193万枚SC,SC 上涨约 200%
- Coinbase国际交易所将增加对 Arweave、Hedera 和 Theta 永续合约的支持
- 某以太坊ICO参与者在休眠8.8年后转出1,960枚ETH,价值587万美元
- 今日美国9只现货比特币ETF净减持8107枚BTC,约4.7亿美元
- 法国巴黎银行持有约4.1万美元的贝莱德现货比特币ETF敞口
- RWA 平台 Untangled 在 Celo 上开设其首个 USDC 借贷池
- MoonPay 集成 PayPal,允许美国用户通过 PayPal 买卖 110 多种加密货币
- RWA市场Ironlight完成1200万美元的融资,拟在美SEC注册
- 截至4月1日Yield Guild Games财库持有资产总规模约6700万美元
- 彭博ETF分析师:需要重新调整对香港虚拟资产ETF市场的看法
比推专栏
更多 >>- 每月动态 | Web3 安全事件总损失约 9081 万美元
- 脱水大字报:牛市行情或延迟类似2016年
- 矿工日收入突破亿创纪录,比特币符文能否接力铭文?
- 获比特大陆投资且被币安首个接入的BTC L2项目BEVM有何亮点?
- 为什么这轮牛市无法复制 2021 年的山寨季?
- 独家!种子轮融资200万美金+AI叙事的项目
- IOSG Weekly Brief|MKR的涅槃重生:新公链和RWA稳定币与Spark借贷独角兽 #223
- Kusama 上的 Coretime 交易已开始,平行链时代谢幕
- 100亿美元开发投资,红杉资本入局,特斯拉要搞波大的…
- Chainlink Q1产品更新;CCIP正式进入全面可用阶段;Consensus2024来啦|Chainlink 周报
观点
项目
比推热门文章
- 【比推每日新闻精选】Block拟每月将比特币产品毛利润的 10% 用于投资 BTC;Coinbase 第一季度营收 16 亿美元,较上一季度增长 72%;Jito 成为 Solana 上TVL最大的协议, 达 14 亿美元
- Terraform 律师反驳 SEC,称代币销售大部分发生在美国境外
- Coinbase 第一季度营收 16 亿美元,较上一季度增长 72%
- Block:拟每月将比特币产品毛利润的 10% 用于投资 BTC
- 【比推每日市场动态】 先抛为快!散户领头!现货比特币 ETF 现最大单日资金外流
- Tether与Chainalysis 合作开发用于监控二级市场活动的可定制解决方案
- 价值超7600万美元ETH从未知钱包转移到Coinbase Institutional
- Magic Eden宣布其BTC Diamond Retro申领已上线
- 以太坊 NFT 4 月份销售额 2.41 亿美元,为2023 年 10 月以来最低
- Jito 成为 Solana 上TVL最大的协议, 达 14 亿美元