Electrum 4.8.3 版本针对一个严重安全漏洞完成修复,该漏洞曾导致两名用户遭遇恶意服务器攻击,其中一人发生资金损失。攻击核心在于伪造地址的后四位字符与真实地址一致,误导用户误判。
Electrum 开发者 SomberNight 于10月24日发布安全公告,指出部分服务器已在实际环境中部署此类攻击。攻击者无法自行花费他人资金,必须获取钱包拥有者的有效数字签名才能完成转账。
攻击利用的是“替换费率”(Replace-by-fee,简称 RBF)机制:用户在支付未确认交易时,可通过提高手续费来加速处理。这一操作在技术上等同于发起一笔新交易,一旦签署,即授权所有目的地和金额。
攻击者设计的诱饵是一笔零手续费、长期未确认的付款。在真实案例中,用户因担心交易停滞而选择提升费用,从而触发了签名授权——此时若交易内容已被篡改,新签名将直接批准错误的资金流向。
吞没:用户广播一笔真实付款,但恶意主服务器未将其发送至比特币网络。
替换:服务器向钱包推送一笔冲突交易,将相同资金发送至攻击者控制的地址。尽管签名无效,但旧版本 Electrum 未验证签名,允许其显示为未确认状态。
显示:钱包历史记录被篡改,真实交易消失,虚假交易显示为待处理。
提升:当用户对虚假交易提高费用时,Electrum 签署新的有效交易,资金随即转入攻击者地址。直到此步,资金才真正流失。
关键点在于:只要签名未被修改,即使交易内容变化,合法签名仍可授权新版本。这正是此次攻击得以成功的根本原因。
首例报告来自用户 dannydeezy,时间是10月11日。该用户使用两个 Trezor 硬件设备保护的 2-of-3 多重签名钱包,合并31个输入进行支付。广播后,钱包显示资金正以未确认状态流向未知地址,随后变为“本地”状态,且从未进入内存池。
该虚假交易精心构造:输入完全一致,签名数据逐字节复制,62个签名虽与原交易匹配,但对新交易无效。它将大部分资金发送至以“GyQ3”结尾的地址,与真实目标仅末四位相同;少量资金返回钱包自有地址,模拟正常找零。手续费接近零,意在促使用户主动提升费用。
由于用户未再次签名,真实交易仍有效且未广播,因此无资金损失。开发者直到第二起事件才识别出费用提升路径。
第二起报告由用户 Raju-K12 于10月18日提交,其在提升费用后造成资金损失,具体金额未披露。
时间线如下:
本次更新的核心改进是:Electrum 现在会在将任何涉及支出自有地址资金的未确认交易加入历史记录前,强制验证其数字签名。带有无效签名的虚假交易将被拒绝,不再显示,从而彻底关闭该攻击路径。
但修复范围有限。系统仍不对传入的未确认交易进行签名验证。原因在于 Electrum 缺乏完整的共识引擎,若要验证他人交易的输入,需追溯其未确认父级直至已确认区块,成本过高且复杂。
已确认交易通过简化支付验证(SPV)机制完成校验,依赖区块头比对,因此无需额外检查。
仅连接到受信任服务器(如自建或私有节点)的用户不受影响。但若钱包默认连接公共服务器,则存在被攻击风险。
从官方渠道下载软件,并严格核对文件签名,确保未被篡改。
务必与原始发票或付款请求对比,而非依赖钱包历史记录——该记录可能已被攻击者操控。
每次签名前,检查金额、费用及收款地址是否与预期一致。Trezor 官方指南也强调必须在硬件设备屏幕上完成最终确认。
若遇交易停滞或要求修改,应先在独立区块浏览器中查询原始交易 ID。首例报告中,真实交易从未抵达网络。
对于无法及时升级的用户,建议在签署任何交易(无论是否涉及费用提升)前,手动核对输出地址与金额是否完全一致。虽然补丁已堵住此漏洞,但因 Electrum 仍依赖主服务器获取未确认数据,最终检查仍是关键防线。