LDK 重连漏洞修复:防比特币被盗
核心要点
LDK修复重连及LSPS2漏洞,恶意节点可借重连谎称未收付款窃取资金。Optech简报指出v0.2.7/v0.1.13已修补,开发者需更新代码以保资产安全。
据 Woofun AI 消息, () 针对闪电网络中的重新连接漏洞完成关键修复,此举直接消除了因恶意节点伪造支付状态而导致的比特币盗窃风险。
10 月 1 日发布的 v0.2.7 版本与 v0.1.13 版本分别针对 0.2 分支和 0.1 分支中的 LDK 重新连接漏洞进行了修复,比特币 Optech 在其 10 月 9 日发布的新闻简报中对这些修复内容进行了详细说明。此类攻击的核心机制在于,恶意节点在确认收到更新信息后,通过断开并重新连接网络,伪装成从未接收过该信息的状态。在修复措施出台之前,这种虚假声明会诱导 LDK 签署一份与之冲突的承诺交易,而承诺交易正是代表节点间达成的状态协议,用于在比特币的链上完成该状态的结算。正如 PR 5057 中所描述的情景那样,新签署的交易不会被 LDK 的通道监控组件记录下来,而该组件正是负责追踪通道在链上的各项声明的关键模块。
这一缺陷可能导致被转发的款项遭受损失:恶意发送者可以在链上确认该交易,让款项流向下一位接收者,之后在付款合约到期时再将其取回,即便负责转发的节点知晓用于提取款项的密钥。这样一来,转发应用程序就会在无法收回相应资金的情况下向下游支付款项,造成实质性资产流失。
Woofun AI 整理数据显示,除了修复 LDK 的重新连接问题外,v0.2.7 版本还解决了另一类涉及 即时支付的盗窃漏洞,即某些流动性服务在处理支付任务时会开启通道。
如果支付信息被截获,攻击者就可能故意篡改其金额,迫使该服务开启通道并转发比实际到账金额更多的比特币,而该服务则需要用自己的资金填补差额,PR 5042 版本则针对这一问题提出了相应的解决方案。上述风险关乎 LSPS2 的服务流程,而 v0.1.13 版本的更新列表仅列出了通用的重新连接修复内容,未提及 LSPS2 相关的修复措施。此次修复措施规定,只有在节点的确认状态尚未处理完成时才允许重新传输数据,而一旦节点声称遗漏了已确认的更新信息,系统就会强制关闭通道,从而阻断攻击路径。
这些缺陷与 在 9 月 13 日发布的关于 LDK v0.2.6 版本的报道中所提到的拼接费挪用以及保存状态加载错误有所不同。如下文所述, 是另一种独立的实现方案。LDK 的架构文档指出,该 SDK 是在应用程序内部进行编译和运行的,因此开发者必须将经过修复的代码整合到所部署的软件中。对于需要集成 LSPS2 功能的场景,PR 5042 版本的提交说明指出,早期版本所生成的付款合约仍保留着未经验证的金额数值,相关团队不仅需要更新库文件,还需妥善处理这些待处理的合约,以确保资金流转的绝对安全。

评论
暂无评论