莱特币(LTC)开发团队已正式承认“Mimblewimble Extension Block(MWEB)”存在验证缺陷。该漏洞使攻击者能够创建规模达85,034.47285734 LTC的虚假pegout,随后通过紧急响应回收资金,账目不一致问题已得到解决。根据13日莱特币开发者大卫·伯克特(David Burkett)公布的调查报告,同一缺陷在4月份还引发了进一步的恶意利用尝试,导致升级后的挖矿节点出现故障,并引发了13个区块的无效链重组。
验证缺失造成的漏洞,允许大于实际输入的提款
报告指出,问题的核心在于区块连接过程中,缺少对MWEB输入与实际UTXO元数据是否一致的验证。虽然在正常的内存池和区块生成路径中会进行该项检查,但在区块连接阶段并未完全强制执行。攻击者利用这一漏洞,使用实际不超过1.2084693 LTC的输入,创建了85,034.47285734 LTC的pegout。
该攻击发生在区块高度3,073,882。生成的资金首先转移到透明的莱特币地址,然后被分割成三个输出。然而,由于此类利用需要绕过正常的传播和区块构建程序,因此攻击者必须亲自挖矿,或者确保有矿工愿意接受包含缺陷数据的区块。
矿池紧急协作回收资金……用户资金未受损失
开发团队在确认漏洞后,与主要矿池进行了非公开合作,以防止进一步利用。为此,紧急发布了莱特币核心0.21.5和0.21.5.1版本,并对已被接受的攻击区块设立例外处理,暂时阻止了攻击者控制的三个透明输出被花费。
之后,攻击者试图再次使用其中一个被冻结的输出,但被已升级的矿工拒绝。开发团队与攻击者取得联系后,对方同意了850 LTC的赏金条件,并签署了回收交易。报告显示,回收的总额为84,184.47278630 LTC,而850 LTC作为商定的赏金留在了攻击者地址。剩余资金则被转回MWEB,以平衡内部供应。
莱特币开发团队表示,3月份事件中确认没有用户资金损失。不过,评估认为,此次事件需要紧急矿工协作、分阶段部署以及对历史攻击数据设立例外处理,因此网络运营负担不小。
4月份的再次攻击演变为“拒绝服务”,导致13个区块的无效链
第二起事件始于4月25日的区块高度3,095,931。另一名攻击者尝试了相同的漏洞路径,但升级后的节点拒绝了错误的MWEB数据。问题在于,此过程中暴露了另一个处理缺陷:可以在不改变区块标准哈希的情况下篡改MWEB主体内容。
报告解释称,当升级后的节点接收到被篡改的区块时,会因MWEB主体应用失败而将其归类为“BLOCK_MUTATED”,之后可能无法再次接受同一哈希的正常数据。这导致部分矿工节点无法迅速恢复正常挖矿,而未应用MWEB补丁的矿工则持续延长无效链。
最终,无效链一直延续到区块高度3,095,943,共错误生成了13个区块,随后被正常链超越。莱特币方面强调,此次调整并非正常链的回滚,而是由升级迟缓或未完全应用验证规则的矿工所创建的“无效链”的重组。
波及NEAR、THORChain……凸显莱特币升级必要性
4月份的重组也影响了外部基础设施。报告称,基于NEAR协议(NEAR)的Intents在将11,000 LTC兑换为7.78814476 BTC后,由于相关LTC从有效链中移除而遭受重大损失。THORChain也受到影响,攻击者在将10 LTC兑换为0.00719957 BTC后,莱特币方面的交易随之失效。
莱特币核心0.21.5.4版本于4月25日发布,修改了逻辑,允许清除被归类为被篡改区块的数据,并重新接受同一区块哈希的正常数据。开发团队建议用户、矿工、交易所和服务运营商升级至0.21.5.4或更高版本,并确认节点同步状态。
目前,LTC的交易价格为55.95美元。此次事件表明,相较于莱特币(LTC)的MWEB设计本身,验证路径的某些缺失竟能导致如此巨大的混乱。升级速度与节点一致性可能决定市场信任度这一点也再次凸显。


