ZetaChain 的 Bug 被白帽黑客报告,被误判为“预期行为”,随后引发了 33.4 万美元的漏洞利用
ZetaChain 的 Bug 被白帽黑客报告,被误判为“预期行为”,随后引发了 33.4 万美元的漏洞利用
2026 年 4 月下旬,跨链基础设施再次证明了微小的设计假设会如何累积成巨大的风险。ZetaChain 确认,一名攻击者通过一系列相互关联的弱点,从协议控制的钱包中窃取了约 33.4 万美元,这些弱点贯穿了消息发起、目标链执行规则以及长期存在的 ERC-20 授权。虽然用户资金未受影响,但此事件依然是一个严峻的提醒:在跨链系统中,“低风险”组件在交互时很少能保持低风险。
此案例之所以特别具有启发性,在于技术故障背后的流程性失败。ZetaChain 承认,核心问题此前已通过其赏金计划渠道报告,但起初被视为预期行为,而非需要缓解或更严格限制的事项。有关披露和事后细节的报道,可以参考 Cointelegraph 关于被驳回报告和随后漏洞利用的回顾:ZetaChain 驳回了可能阻止漏洞利用的 Bug 报告。
以下是为运营人员准备的、易于理解的分析,内容涵盖了事件经过、漏洞利用路径为何奏效、ZetaChain 所做的更改,以及在 2026 年——跨链活动空前广泛、攻击者手册日益“默认多向量”的时代——构建者和用户应该吸取的教训。
事件快照:跨链设计负债到期
攻击者的行为最终导致了跨越 以太坊、Arbitrum、Base 和 BNB 智能链 的 9 笔交易,被盗资产来自 ZetaChain 控制的钱包,而非终端用户。ZetaChain 在问题得到控制后暂停了跨链操作;问题首次公开时,最初的暂停得到了广泛报道(参见:The Block 关于暂停和缓解措施的报道)。
虽然美元金额并未达到“桥接巨额黑客”的规模,但其模式至关重要:一个可以被操纵以在外部链上产生 协议签名调用 的跨链网关,即使在即时受害者有限的情况下,也是一个高杠杆的目标。
令人不安的教训:“预期行为”仍可能是可被利用的行为
赏金计划旨在将对抗性好奇心转化为防御性改进——但这前提是审查能够识别可组合性风险。
ZetaChain 此前与 Immunefi 合作启动了其赏金计划(背景:ZetaChain 的赏金计划公告)。然而,此次事件凸显了一个行业普遍存在的挑战:即使每个单独的组件单独来看并非关键,一份报告也可能是“正确的”。Immunefi 本身也强调,实际影响和范围定义至关重要(参见:Immunefi 关于计划规则和影响的指南)。
对于跨链协议而言,门槛应该更高:如果一项功能允许任何一条路径导致“协议可能被欺骗签署不该签署的内容”,那么它就应该得到纵深防御——即使该功能在技术上是按设计运行的。
三个“小”问题如何串联成一个大的漏洞利用
独立研究人员发布了详细的技术分析,涵盖了调用流程和合约行为;其中一个最清晰的逐步分析是:ZetaChain 网关黑客分析。
从安全设计角度来看,此次漏洞利用链可以概括为三个环节:
1) 网关层面的无许可跨链指令发起
一个核心问题是,网关侧的路径可以以一种允许攻击者注入跨链意图(即“将此消息/调用发送到目标链”)的方式被调用,而系统未能对能够发起此类指令的实体实施预期的信任边界。
在跨链系统中,谁有权发出「应远程执行此操作」的信号是第一道也是最重要的一道防线。
2) 目的地的执行规则过于宽松(并且过于依赖狭窄的拒绝列表)
在接收端,执行路径允许调用本质上是“任意的”函数,其限制不足以阻止危险的代币操作。当 EVM 的攻击面巨大时,只有一个仅屏蔽少量选择器的黑名单几乎是不够的——而攻击者只需要一种允许的基本操作(如 transferFrom)就能获利。
这是一种常见的失败模式:在对抗性环境中,拒绝列表的维护成本很高。
3) 过期的 ERC-20 授权将“执行”变成了“资产转移”
最后一个环节更多是操作层面的问题,而非纯代码问题:一些钱包对网关合约保持着无限的授权(或否则过多的授权),并且在不再需要时也没有撤销它们。
在 ERC-20 中,授权实际上是一种永久许可。一旦某个合约获得了以自身名义调用代币的权限,任何剩余的授权就变成了一件危险的武器。有关授权在标准层面的工作原理,请参阅:OpenZeppelin 的 ERC-20 文档。
研究也表明,无限授权的普遍性——以及它们为何会带来系统性风险——远远超出了任何单一协议的范畴(参见:《精打细算,因小失大》授权风险研究)。
攻击者的手法:并非机会主义,而是精心策划
ZetaChain 将此次漏洞利用描述为有明显计划的迹象,包括:
- 提前数天通过 Tornado Cash 预先充值
- 部署专门的“吸血鬼”合约
- 进行地址投毒攻击
地址投毒值得特别关注,因为它越来越多地被融入更广泛的攻击行动中——不仅作为零售诈骗,还作为在事件响应期间制造混乱的一种方式。如果您想对该技术及其为何如此奏效有深入的了解,卡内基梅隆大学的研究人员在此维护了一个专门的资源:区块链地址投毒概述。
ZetaChain 的改进:移除“枪毙自己”的隐患,而不仅仅是修补漏洞
事后修复措施最重要的价值在于它们能否降低类别风险,而不仅仅是阻止一次已知的攻击载荷。根据 ZetaChain 公布的补救措施方向(在公开报道和技术分析中有所总结),主要变更包括:
- 对主网基础设施进行补丁更新,以关闭被利用的路径。
- 永久禁用任意调用功能,该功能使得“执行协议签名中的任意 calldata”得以实现。
- 在存款流程中将无限授权模式替换为精确金额授权,这样单次授权就不会在数月后依然可用。
最重要的主题是从“强大但危险的通用性”转向“狭窄、可验证的意图”。到 2026 年想要安全扩展的跨链协议将越来越需要默认采用允许列表目标、类型化消息和能力受限的执行。
构建者的启发:2026 年的跨链安全在于“组合”,而非“组件”
即使在 ZetaChain 之外,跨链系统也持续遭到攻击,因为它们处于以下几个方面的交汇点:
- 复杂的有限状态机
- 分布式签名/验证
- 极具盈利潜力的代币接口
行业损失报告持续显示,漏洞的严重性居高不下,而长尾风险事件主导了结果(请参阅一项聚合的行业追踪示例:Immunefi 的“2025 年第一季度加密货币损失”报告 (PDF))。
如果您正在设计或集成跨链消息传递,请考虑以下实用保障措施:
- 明确和验证消息的来源:「任何人都可以请求跨链调用」绝不能等同于「协议将签署并执行它」。
- 避免使用执行接收器的拒绝列表:优先使用允许列表和最小化接口。
- 将授权视为威胁模型的一部分:金库/运营钱包应具有严格的批准策略、监控和定期清理。
- 为紧急协调做计划:像 SEAL 911 这样的事件响应网络之所以存在,是因为在涉及签名和跨链执行时,每一分钟都至关重要。
用户清单:发生任何跨链事件后该怎么做(即使“用户未受影响”)
即使协议声称用户资金未受影响,理性地花 10 分钟来减少个人风险仍然是明智的——尤其是如果您曾经与受影响的网关合约有过交互。
1) 撤销您不主动需要的授权
两种可靠的选择:
- 使用授权管理工具,例如 Revoke.cash 代币授权指南
- 或者使用区块浏览器的内置检查器,例如 Etherscan 的代币授权检查器
2) 在日常行为中防范地址投毒
- 不要从交易历史记录中复制代码
- 尽可能使用地址簿/受信任的联系人
- 验证的字符数要多于开头/结尾的几个字符——投毒攻击的设计就是为了匹配钱包 UI 的截断显示。
3) 高价值转账使用硬件进行地址验证
硬件钱包无法阻止您不控制的协议上的智能合约错误——但它可以降低在地址投毒或剪贴板操作场景中您个人授权错误接收者的几率。
这正是 OneKey 所能发挥作用的地方:通过将签名隔离并强调设备上的验证,它可以帮助实现「您签名」与「您意图」的更接近——尤其是在攻击者试图利用混乱的压力时刻。
结束语
ZetaChain 的漏洞是现代加密货币安全现实的一个精炼案例研究:
- 一个先前报告过的问题,
- 由于“按设计”的假设而被忽视,
- 结合了宽松的执行和遗留的授权,
- 由一名预先准备好资金、工具和社交层面噪音的攻击者执行。
如果 2025-2026 年教会了行业任何东西,那就是跨链系统必须针对对抗性组合进行工程设计。最安全的功能是您永远不会意外地将其变成签名预言机——即使一切都「按预期工作」。



