以太坊 Optimism 关键漏洞修复:攻击者可无限铸造代币获百万赏金
以太坊 Layer2 方案 Optimism 因 Geth 分叉中的 SELFDESTRUCT 指令实现错误,导致攻击者可能无限创建 ETH 代币。安全研究员 Jay Freeman 发现该漏洞并上报,获得 200 万美元赏金。Optimism 团队迅速修复并部署补丁。事件凸显了漏洞赏金计划对大型项目维护安全性的重要性,同时也引发了关于赏金支付标准的行业争议。

以太坊 Layer2 方案 Optimism 因 Geth 分叉中的 SELFDESTRUCT 指令实现错误,导致攻击者可能无限创建 ETH 代币。安全研究员 Jay Freeman 发现该漏洞并上报,获得 200 万美元赏金。Optimism 团队迅速修复并部署补丁。事件凸显了漏洞赏金计划对大型项目维护安全性的重要性,同时也引发了关于赏金支付标准的行业争议。

在网络安全领域,漏洞赏金计划(Bug Bounty Program)已成为大型科技企业维护系统安全的重要手段。无论是国外巨头如苹果、微软、谷歌,还是国内大厂如华为、阿里、腾讯,均推出了各自的漏洞悬赏计划。开发者搜寻软件中的漏洞并将之上报厂商,便可获得丰厚奖励。这种模式不仅帮助厂商发现了潜在风险,也让安全研究人员获得了经济回报。
近期,iOS 越狱软件 Cydia 之父 Jay Freeman 发现一个以太坊关键漏洞,获得了 200 万美元(约人民币 1272 万元)的巨额奖金。这一事件再次引发了业界对区块链安全及漏洞赏金机制的关注。
以太坊 Layer2 解决方案 Optimism 能够大规模处理交易,同时保有以太坊的安全性。原先该方案仅适用于 Uniswap 和 Synthetix 等特定项目,后于去年年底宣布取消白名单机制,允许任何用户在 Optimism 上自由部署合约、构建应用程序。
然而,Jay Freeman 在 Optimism 的 Geth 分叉中发现了一个关键 Bug,他将其命名为'Unbridled Optimism'。该漏洞位于 Optimism 上执行智能合约的虚拟机中,而非简单的'桥'远端。利用这一 Bug,攻击者可以访问'桥'远端有效且无限数量的 tokens。
Bug 出现在以太坊 VM 中的 SELFDESTRUCT 指令。该指令用于合约自行销毁,移除其账户对象,允许从区块链的活动集中快速清除潜在的大量'过时'状态。当合约执行到 SELFDESTRUCT 指令时,它会指定一个'受益人'来接收它当前拥有的资金。
在 go-ethereum 的 EVM 实现中,该操作码通常将余额添加给受益人,然后调用 StateDB.Suicide。随后,StateDB.Suicide 会将帐户余额清零。
但在 Optimism 的特定实现中,这一步既不使用 stateObject 的 setBalance 设置器,也不使用共享的 common.Big0 常量。这意味着除了将对象上的布尔值设置为 true 之外,该操作毫无作用。结果是,'此时的合约仍然存在并继续拥有它之前拥有的代码!'
Optimism 团队在报告中也指出:'该漏洞使得可以通过在持有 ETH 余额的合约上反复触发 SELFDESTRUCT 操作码以在 Optimism 上创建无数的 ETH。'这本质上是一个重入攻击或状态同步不一致的问题,导致链上资产被非法复制。
所幸,Jay Freeman 之后迅速于 2 月 2 日向 Optimism 团队报告了该 Bug。Optimism 团队通过对 Optimism 链历史的分析表明,除了最初由 Etherscan 员工的一次意外触发(那次没有生成可用的多余 ETH),该漏洞至今还未被利用过。
对于此 Bug 的出现,Optimism 团队解释道:'这个错误源于对 go-ethereum 代码库的修改(旨在保持与旧的'OVM 1.0'系统的向后兼容性)。'由于过去一年中 Optimism 用户增长了很多,相比早期发布过程只涉及少数关键基础设施提供商之间的协调,Optimism 团队表示如今发布的复杂性在急剧增加:代码库的桥接器、更多提供商、多个主网分支之间均有涉及。
甚至即便发现了 Bug,Optimism 团队也不能立即发布明显的补丁——他们不能冒着有人在升级之前对漏洞进行逆向工程的风险。因此,团队采取了谨慎的测试流程。
在收到漏洞报告并确认漏洞的几小时内,Optimism 团队就对该 Bug 的修复进行了测试,并部署到了 Optimism 的 Kovan 和 Mainnet 网络(包括所有基础设施提供商)。Optimism 官方提醒,虽目前该 Bug 尚未被利用,但鉴于该 Bug 的重要性,许多易受攻击的 Optimism 分叉和桥接提供商需引起重视,确保尽快升级至 0.5.11 版本的 l2geth。
此后,为感谢 Jay Freeman 对这一关键漏洞的发现,Optimism 给予了他 2000042 美元。
从本次事件可以看出,漏洞赏金计划对于许多大型项目来说或许必不可少。正如 Optimism,逐年增加的用户伴随着愈发复杂的技术,与此同时产生 Bug 的可能性也在日益提升。此时若仅凭数量有限的项目内部人员来搜寻 Bug 无疑十分艰难。
无私发现 Bug 的人固然有,但适当的赏金计划显然更能刺激许多开发者寻找 Bug 的热情与动力。这或许也就是众多大型科技企业或项目均发布了漏洞赏金计划的原因。就在 Jay Freeman 公开本次漏洞的同一天,MakerDAO 还推出有史以来最大的漏洞赏金,最高可奖励高达 1000 万美元。
不过不能否认的是,漏洞赏金计划也引发了一些争议。赏金金额的评估往往存在主观性,导致部分研究者感到不满。
例如,去年 9 月,向苹果报告了 4 个零日漏洞的 Denis Tokarev 表示,依照苹果安全赏金页面,他所报告的漏洞的价值为 10 万美元,但苹果拒绝支付。无独有偶,开发者 Jose Rodriguez 此前也曾发推谴责苹果:他所报告的漏洞估值超 2.5 万美元,最终却只被奖励了 5000 美元。
这些案例表明,虽然赏金计划激励了安全研究,但在评估标准和支付透明度上仍有改进空间。
Optimism 的此次漏洞事件是区块链安全领域的一个典型案例。它展示了 L2 解决方案在追求性能的同时,底层虚拟机实现的复杂性可能带来的风险。通过外部安全专家的协助,项目方得以在造成实际损失前修复问题。
对于开发者和安全研究人员而言,理解 EVM 底层机制、关注主流项目的更新动态以及积极参与负责任的披露流程,是保障自身权益和生态安全的关键。随着 Web3 技术的普及,类似的漏洞赏金活动将更加频繁,建立更完善的赏金评估体系将是行业发展的必然趋势。
参考链接:

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online