安全实战与案例库进阶510 次阅读
Wormhole 被盗约 3.26 亿美元:一次签名验证的疏忽
漏洞出在跨链消息的验证环节——合约没有正确校验守护者账户,攻击者伪造了一条"已批准"的跨链消息凭空铸出 wETH。
#安全#案例#跨链桥#签名验证#Wormhole
一句话结论
Wormhole 事件是验证逻辑缺失类的典型:合约相信了不该相信的输入,于是攻击者可以凭空造出资产。
事件经过
Wormhole 是连接 Solana 与以太坊等链的跨链桥。2022 年 2 月,攻击者在 Solana 侧调用桥合约的 complete_wrapped 函数,伪造了一条"已由守护者网络签名批准"的跨链消息,让桥凭空铸造出约 12 万个 wETH(当时约 3.26 亿美元),随后跨到以太坊换成真实 ETH。
根本原因:未验证守护者账户
桥的安全性建立在守护者(Guardian)签名之上:只有守护者网络批准的消息才能触发跨链铸造。问题在于:
- 合约在校验签名时,没有正确验证传入的守护者账户是否真的是当前合法的守护者集合,而是使用了一个可被攻击者控制的旧状态
- 攻击者据此自己构造了"合法签名",绕过了整条验证链路
修复方式是在校验前把守护者的账户信息同步为最新状态。
为什么桥特别容易被盯上
跨链桥同时具备三个特征,天然是攻击首选:
- 资金高度集中:一座桥锁着数十亿资产
- 逻辑复杂:要同时理解两条链的状态与消息格式,攻击面大
- 验证依赖外部输入:只要有一步没校验干净,就等于给了伪造入口
给你的教训
- 不要把桥当成"转账工具"就无脑用:桥是风险最高的 DeFi 品类之一,优先选官方桥或长期运行、审计充分的主流桥。
- 跨链时先用小额跑通,确认到账再操作大额。
- 关注桥的审计报告与保险/赔付记录,出过事且未妥善赔付的桥要回避。