
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. 投资者在投资采用中心化治理机制的项目时需衡量风险,谨慎投资。
比推快讯
更多 >>- 白宫:特朗普希望和平解决伊朗问题,但也不惧怕使用武力
- 白宫:特朗普将在两周内决定是否对伊朗采取军事行动
- 全网比特币合约未平仓头寸达 693.9 亿美元
- 某鲸鱼于 6 小时前从 Deribit 提出 303.36 枚 BTC,约 3166 万美元
- 以色列预计美国将在 24 至 48 小时内就打击伊朗作出决定
- Arkham:贝莱德在 6 月份已经购买超 7.5 亿美元 ETH
- KyberSwap 将于 7 月 1 日起在聚合器中下线 ZKsync Era
- 消息人士:特朗普尚未就打击伊朗作出最终决定
- Plasma 计划于夏末启动主网
- Wormhole NTT 框架拓展至 Sui 网络,Momentum 已支持 NTT
- Telegram 创始人立下遗嘱,将 171 亿美元财富分配给 6 个孩子和 100 个精子捐赠所生子女
- 特朗普签署行政命令,将 TikTok 关闭期限延长 90 天
- 瑙鲁将成立虚拟资产管理局,力争成为太平洋地区的加密货币中心
- Coinbase:超 4000 万枚 SOL 被质押至 Coinbase 验证节点
- 数据:已有超 100 家公司合计持有逾 83 万枚 BTC
- 天桥资本创始人:SOL 将超越 ETH
- Pantera Capital 与 Blockworks 推出代币透明度框架
- 韩国金融服务委员会正在制定推出虚拟资产 ETF 路线图
- Visa 宣布旗下稳定币业务已扩展到中欧、东欧、中东和非洲地区
- 某 LayerZero 团队/投资者将 200 万枚 ZRO 存入 Binance,约 361.5 万美元
- 美国财长贝森特:GENIUS 法案通过将让稳定币市场前景将更加光明
- 哈梅内伊最新表态:美国已介入中东地区事务,暴露以色列“软弱无能”
- 特朗普:美联储主席鲍威尔应将利率下调 250 个基点
- 币安 Alpha 积分更新:slisBNB 和 clisBNB 将计入用户的币安 Alpha 持仓积分
- 欧股短线跳水,德国 DAX 指数、意大利富时 MIB 指数跌超 1%
- 上市公司的比特币财库储备已超 768,500 枚,价值超 820 亿美元
- Fireblocks 报告:全球 49%机构已使用稳定币进行支付
- 苹果、谷歌等服务的 160 亿条登录凭证遭泄露,或对加密货币持有者造成影响
- Telegram 创始人 Pavel Durov 被批准 7 月 10 日起可离开法国
- Virtuals:注意到通过开发者钱包异常累积积分情况,将对流程全面审查
- 特朗普:《华尔街日报》根本不知道我对于伊朗问题的想法是什么
- 加密风投 Hypersphere 投资合伙人在虚假 Zoom 会议中损失“多年积蓄”
- Kraken 与 Babylon 集成推出比特币质押服务
- Hypersphere 合伙人:遭遇 Zoom 钓鱼攻击,6 个钱包资金被窃
- BitoPro 报告:攻击系 Lazarus Group 所为,通过 AWS 劫持进行脚本植入
- Project Eleven 完成 600 万美元融资,Variant Fund 和 Quantonation 领投
- 日本服装连锁企业 Mac House 拟购入约 1177 万美元的比特币等加密资产
- 特朗普旗下公司悄然减持加密项目 WLFI 股份
- Presto Research:企业加密资产储备存在泡沫风险,但较以往“更微妙”
- 消息人士:在与美国的谈判中,欧盟越来越屈从于 10%的基础关税
- 马斯克将把 X 打造成"超级应用":探索引入信用卡或借记卡
- Alchemy Pay:将推出自有稳定币
- X CEO:用户很快就能在 X 平台上进行投资或交易
- 小摩:不要对美联储降息抱太大期望
- Greeks.live:BTC 交易者关注 10.5 万美元筹码集中区域,预期 7 月波动较大
- XRP Ledger 将推出首个社区主导组织 XAO DAO,迈向去中心化治理
- 香港胜利证券拟推出结构性加密产品
- 分析:美联储降息希望转向 9 月,比特币保持平稳
- 伊朗对加密交易所实施宵禁措施,以防止资本外流
- 澳大利亚 Monochrome 现货比特币 ETF 的 BTC 持仓突破 800 枚