币圈界报道:

Electrum 漏洞事件深度解析:恶意服务器如何诱导签名劫持

Electrum 4.8.3 版本已发布,旨在修补一个可能导致用户资产流失的高危安全问题。该漏洞被证实已在实际环境中被利用,两名用户报告遭遇攻击,其中一人因误操作造成资金损失。攻击核心在于伪造地址后四位与真实地址一致,误导用户判断。

受信任节点未受影响,公共服务器成主要风险源

据 Electrum 开发者 SomberNight 于10月24日披露,部分非官方服务器已被用于实施定向攻击。尽管这些服务器无法直接动用用户资金,但它们可构造虚假交易以诱导用户签署,从而完成资金转移。

攻击路径设计:以费用提升为突破口

攻击依赖于“替换费用”(Replace-by-fee)机制。恶意服务器不会直接花费资金,而是提供一笔带有无效签名的冲突交易,伪装成原交易的升级版本。当用户尝试提高手续费以加速支付时,其数字签名将自动授权新交易内容,而该内容已被篡改为向攻击者转账。

典型诱饵是一笔零手续费且长期未确认的付款。在真实案例中,这种停滞状态促使用户主动提升费用,进而触发签名流程,最终导致资金被转至攻击者控制的地址。

四步攻击链详解:从吞没到资金转移

首先,用户广播原始交易,但恶意主服务器拦截不传播。其次,服务器向钱包推送一笔冲突交易,将相同资金发送给攻击者账户。第三,由于旧版 Electrum 在显示未确认交易时不校验签名,虚假交易被错误展示为待处理状态,真实记录则消失。最后,一旦用户对虚假交易进行费用提升,软件会生成有效签名,使篡改后的付款得以生效——此时资金才真正发生转移。

两起真实受害案例揭示攻击演进

首例发生在10月11日,用户 dannydeezy 使用双 Trezor 多重签名钱包发起一笔合并31个输入的付款。广播后,钱包历史记录显示资金流向未知地址,随后变为“本地”状态,但该交易从未进入内存池。攻击者构建的虚假交易复用了全部62个签名数据,仅更改输出地址,将其设为以“GyQ3”结尾,与真实目的地高度相似,并保留少量找零以增强可信度,同时设置接近零的手续费。

第二例于10月18日发生,用户 Raju-K12 在对同一类虚假交易提升费用后造成损失,具体金额未公开。直到此次事件后,开发团队才明确攻击路径依赖于费用提升环节。

4.8.3 版本修复范围与技术边界

新版引入关键防护措施:在将任何涉及支出的未确认交易加入历史记录前,强制验证其签名有效性。因此,带有无效签名的伪造出账请求将被系统拒绝,不再显示在界面中,从而堵住攻击入口。

然而,此检查仅限于出账交易。传入的未确认交易仍不进行签名验证。原因在于 Electrum 缺乏完整共识引擎,若需追溯父级未确认交易直至已挖矿区块,计算成本过高。目前采用简化支付验证(SPV)方式验证已确认交易,但对未确认的外部输入仍保持信任状态。

仅连接至自建或受信任服务器的用户不受影响。若使用公共默认服务器作为主节点,则存在暴露风险。

防范建议:四步防御策略务必执行

第一步:立即升级至 4.8.3

请从官方渠道获取安装包,并严格核对文件数字签名,确保下载来源可靠。

第二步:核对完整目标地址

切勿仅依赖钱包历史记录中的显示内容,应将收款地址与原始发票或付款请求逐字符比对,以防历史记录已被污染。

第三步:在硬件设备屏幕上确认细节

每笔签名前,请在 Trezor 等硬件设备的物理屏幕中核实金额、费用及接收地址是否完全一致。

第四步:遇异常立即终止操作

若发现交易长时间未确认或出现变更提示,应立即停止所有操作。在独立区块浏览器中查询原始交易哈希,确认其是否已上链。首例报告中,真实交易根本未被网络接收。

对于暂无法升级的用户,建议在每次签署交易(包括费用调整)前手动比对输出地址和金额。虽然补丁已关闭当前攻击通道,但由于软件仍依赖主服务器提供未确认数据,最终签名前的人工核查仍是不可替代的安全屏障。