尊敬的 Conflux 社区用户与生态伙伴:
近期,我们收到了 Conflux 生态团队 GraFun 提交的 Conflux EVM 漏洞报告。经调查与漏洞修复,Conflux 已于 2025 年 3 月 17 日顺利完成 Conflux 网络 V2.5 版本的安全升级,现将本次安全事件与处置过程公开如下。
一、事件背景
2025 年 2 月 13 日,GraFun 团队报告了 Conflux 网络上 CREATE2 指令行为存在的一个严重安全漏洞:
在经典的以太坊虚拟机(EVM)中,当目标地址已有合约部署时,CREATE2 指令会部署失败并返回零地址。但 Conflux 网络此前的实现允许 CREATE2 在已部署合约的地址重复部署,导致该地址的合约状态被重置到初始部署状态。
收到报告后,我们第一时间对漏洞进行了复现与定位,确认了漏洞存在的具体代码位置。
二、漏洞安全影响评估
漏洞确认后一周内,我们迅速开展了深入的安全影响分析:
- 大部分基于 CREATE2 的工厂合约(如 Swappi 工厂)均实现了额外的地址冲突检查,因此未受该漏洞影响。
- 然而,Gnosis Safe 未实施此类额外检查,因此受到漏洞影响。攻击者利用该漏洞可将 Gnosis Safe 合约状态重置至初始部署状态,虽然无法直接篡改签名权限,但可以重放过去已签署执行的交易。
- 为了进一步评估 Conflux 链上 Gnosis Safe 的安全风险,我们使用
eth_getLogs
方法采集了全部 Gnosis Safe 合约及其执行记录(约三十个合约),并逐一人工分析安全影响。经分析发现,大部分 Gnosis Safe 资金转移仅涉及可信地址,仅极少数资金存在潜在的安全威胁。
三、安全处置过程与升级方案
为保障用户资产安全,我们第一时间通知了受影响的生态合作伙伴,并协助他们将可能存在风险的资产及时安全转移,同时启动了预定的安全升级流程:
- 漏洞修复与集成测试(2月21日):完成代码修复并通过集成测试
- 开发测试网升级(2月24日):在内部开发测试网上验证。
- 公共测试网升级(2月25日公告,3月3日生效):在公开测试网络上完成完整测试与安全验证。
- 主网升级部署(3月3日公告,3月17日生效):完成 Conflux 主网的安全升级,彻底修复了该漏洞。
四、漏洞成因复盘与反思
事后我们进行了深入的漏洞成因分析。Conflux 的 EVM 实现最初从 OpenEthereum 项目移植而来,然而 OpenEthereum 项目代码质量较差,存在两处严重误导性的因素:
- 在新合约创建函数(
new_contract
)中的注释错误地暗示允许在已有合约地址重复部署合约。该注释撰写于 EIP-684 (禁止地址重复部署) 提出之前,且直至 OpenEthereum 停止维护也未做及时更新。代码链接 - OpenEthereum 未对地址冲突定义单独的明确错误类型如 “ConflictAddress”,而是直接返回一个“OutOfGas”错误,导致开发人员难以从代码逻辑和错误类型中觉察到原本已有防止重复部署的检查逻辑。代码链接
受此误导,Conflux 团队误以为以太坊允许 CREATE2 地址重复部署,在 Conflux 黄皮书的附录A及各种文档中,也错误地将以太坊未禁止同地址重复部署,作为 EVM 与 Conflux Core Space VM 的区别。因此,在引入 Conflux eSpace 时,为兼容以太坊逻辑,我们错误地移除了该关键检查。
在此期间,Conflux 团队对于 EVM 各种行为的安全影响不够敏感也对这一漏洞存在不可推卸的责任。
五、漏洞奖励(Bug Bounty)
鉴于 CREATE2 在 EVM 底层的重要性及漏洞潜在的严重安全影响,我们将此漏洞评级为“Critical”(严重)等级,向漏洞报告方 GraFun 团队颁发基础赏金 50,000 CFX。此外,考虑到该团队通过及时报告帮助避免了潜在损失,我们根据潜在损失数额额外奖励 10,000 CFX,共计 60,000 CFX。
六、后续行动与安全强化措施
随着 Conflux 的 PayFi 战略布局推进,金融化应用对生态工具的安全性与成熟性提出了更高要求。为了更好地借助以太坊生态中的成熟产品来强化 Conflux 生态工具安全性,我们计划于下一次硬分叉升级中同步绝大多数以太坊 EVM 特性(详见 CIP-645)。同时,我们也将以太坊官方的 EVM 规范测试用例移植至 Conflux,以提升与以太坊生态的一致性,防止类似安全问题再次发生。
感谢社区与生态伙伴的持续支持与关注,Conflux 团队将继续保持公开透明、迅速响应的态度,切实保障生态安全与用户利益!
Conflux 团队
2025 年 3 月 24 日