Wanchain Cardano桥接被攻击:验证器漏洞导致5.15亿NIGHT代币被盗
连接Cardano与BNB Chain的跨链桥Wanchain遭受了针对性攻击。事件导致约5.15亿枚NIGHT代币从桥接国库中被提取。攻击发生时,这笔资金估值约1300万美元,尽管部分分析师给出了更为保守的约900万美元的评估。
问题根源:签名编码歧义
安全专家的初步分析指出,TreasuryCheck验证器的实现存在严重漏洞。问题源于签名消息的编码歧义。验证器是一种智能合约,用于检查交易是否可被批准。"编码歧义"意味着不同的输入数据集可能产生相同的输出字符串。简而言之,系统失去了区分不同操作的能力。
攻击机制如下:
- 签名消息通过将redeemer数据(附加在交易中用于验证其合法性的数据集)中的14个可变长度字段进行"原始"拼接而成,未使用分隔符或长度前缀。拼接方式采用了AppendByteString函数。
- 因此,不同的字段值组合可能产生相同的字节字符串。
- 相同的字节字符串意味着相同的哈希值(数字指纹),进而导致相同的签名可被重复使用。
为便于理解:假设主管批准了数字组合"12345"并附上签名。验证程序将组合分为两个字段:"收款人"和"金额"。按主管意图,"收款人"=12,"金额"=345。但组合本身未标明分界点。组合"12345"也可被不同划分:"收款人"=123,"金额"=45。数字未变,组合相同,签名有效——但收款人和金额却不同。攻击正是基于此:攻击者并未伪造签名,只是"移动"了字段间的无形边界。
对Plutus V2链上字节码的反编译证实存在内置的SerialiseData函数,但该函数仅在output-datum匹配路径中被调用,而非用于构建签名的哈希。若采用Sha3_256(SerialiseData(...)),则可在CBOR编码中确保字段边界唯一,从而防止此类签名重用攻击。
据分析师称,攻击者伪造了消息以非法铸造代币,随后将提取的资金兑换为Cardano网络上的ADA。
Wanchain团队已确认事件,关闭桥接以展开调查,并承诺保持完全透明,事后将发布详细报告。
市场反应与Midnight Foundation立场
NIGHT是Midnight项目的原生代币,该项目专注于隐私保护的区块链解决方案,由Cardano背后的公司Input Output(IO)支持。攻击消息导致NIGHT价格日内暴跌超30%,创下约0.016美元的历史新低。
Midnight Foundation强调,该事件仅限于Wanchain Cardano-BNB桥接范围内,不影响Midnight网络本身。协议、验证器网络、共识机制及关键基础设施均保持安全并正常运行。基金会正与Wanchain保持密切沟通,认为此次事件不会改变Midnight网络的安全水平与运营完整性。
Cryptalist分析评论: 此事件再次痛苦地提醒我们,跨链桥仍是DeFi基础设施中最脆弱的环节之一。编码歧义漏洞并非新鲜事,但在Wanchain这样重要的项目中再次出现,反映出智能合约审计与测试质量的系统性问题。NIGHT下跌30%是市场对流动性损失的可预期反应,但Midnight项目的长期影响将取决于Wanchain能否迅速有效地弥补损失并恢复用户信任。