比特币钱包 Electrum 于 2026 年 10 月 24 日 12:52 UTC 发布高危安全公告 GHSA-6jp4-8v48-cc5v,确认存在恶意服务器诱导用户把币打到攻击者地址的问题,并明确”已有服务器在野执行该攻击”。修复版本 4.8.3 于 10 月 23 日打标、24 日放出签名二进制,所有低于 4.8.3 的版本均受影响。
攻击链:一次提费如何变成转账
Electrum 是轻钱包,不下载全链,靠连接的服务器获取未确认交易信息——这一点在其官方 FAQ 中属于”设计上必须信任服务器”的已知前提。攻击正是从这份信任里长出来的:
- 用户广播真实交易 tx1,恶意服务器将其”吞掉”,不转发到比特币 P2P 网络,tx1 因此进不了内存池。
- 服务器随即向钱包推送一笔冲突交易 tx2,输出地址改为攻击者控制的地址,输入沿用 tx1。
- tx2 的签名是无效的,但旧版客户端在写入本地历史前并不校验签名。
- 钱包界面把 tx2 显示为”未确认”,真实的 tx1 从列表里消失。
- 用户以为交易卡住,手动用 RBF(Replace-by-Fee)提高手续费,客户端为这笔伪造交易重新签名并广播,钱就此付给攻击者。
两起报告里,攻击者地址都被”研磨”成与真实收款地址末四位相同,靠扫一眼地址尾部的习惯根本拦不住。第二起案例中伪造交易的费率被刻意设为接近零,这本身就是诱导提费的鱼饵。
已在野发生,已有用户损失
第一起报告来自用户 dannydeezy,10 月 11 日私下提交:他用 2-of-3 多签钱包、两台 Trezor 硬件设备逐一核对输出后才点广播,结果历史记录里整笔金额变成一笔陌生地址的未确认交易,真实交易始终没有进入内存池。10 月 18 日,用户 Raju-K12 报告在提高手续费后实际丢币。公告未披露损失金额。
4.8.3 修了什么、没修什么
修复提交的做法是:客户端在把内存池交易写入本地历史之前,先校验其中属于本钱包地址的输入签名,伪造的花费记录因此不会再显示出来。但边界要说清楚——Electrum 没有完整的共识与脚本解释器,对”收款方向”的未确认交易依然不做验证;已确认交易本来就走过 SPV 校验,不受影响。只连接自建服务器(Electrum Personal Server)的客户端不在受影响范围。
# 核对版本,低于 4.8.3 必须升级
electrum --version
# 只从官方站点取带签名文件的安装包
# https://electrum.org/#download
处置建议
- 立即升级到 4.8.3,只从 electrum.org 下载并校验官方签名文件,不要用第三方镜像。
- 签名前核对完整收款地址与金额,不是末四位,是整串地址。
- 看到”交易卡住”先用区块浏览器确认 txid 是否进入内存池,再决定是否提费。
- 优先连接自建或明确可信的服务器;同批 4.8.3 还更新了 certifi,撤销对 eMudhra/emSign 已吊销证书的信任。