Electrum服务器诱骗钱包用户签署虚假零费用支付
恶意的 Electrum 服务器将用户刚刚广播的比特币交易替换为支付相似地址的虚假零手续费交易。
服务器似乎赌受害者会提高手续费并签署虚假交易。
Electrum 于 10 月 24 日发布 4.8.3 版本以解决这一高危漏洞。维护者 SomberNight 同一天发布了安全公告 GHSA-6jp4-8v48-cc5v,并要求用户升级。
伪造的地址与合法目的地地址共享以 GyQ3 结尾的部分
Electrum 是一个轻量级客户端。它不具备完整的比特币节点功能,而是依赖其服务器来获取未确认的内存池交易。其官方文档详细说明了其工作原理。
某人签名并发送了交易 tx1。恶意服务器拦截了该交易,并向钱包发送了另一笔不同的交易 tx2,将资金转至攻击者的地址。
tx2 包含无效的签名。旧版 Electrum 不会验证内存池交易的签名,因此钱包将 tx2 显示为待处理状态,并隐藏了 tx1。
通过提高费用替换交易(Replace-By-Fee,简称 RBF)允许发送方以更高的费用重新广播一笔未确认的交易。如果伪造交易的fee被提高,钱包就会使用有效签名对攻击者版本的交易进行签名。
受害者之一 dannydeezy 记录了此次攻击过程。这是一笔采用 2-of-3 传统 P2SH 多重签名方案的交易,涉及两个 Trezor 硬件钱包、31 个输入和一个输出。
用户在两个 Trezor 设备上核对输出后进行了广播。随后钱包历史记录显示全额转入一个未知地址且处于未确认状态,该条目后来变为“本地”(Local)。
伪造交易复制了真实交易的输入、版本号和锁定时间,并在所有 31 个输入上使用了字节完全相同的 scriptSigs。
62 个签名均与真实交易匹配,但没有任何一个签名与伪造交易匹配。
几乎所有资金都被发送到了一个相似地址,仅有少量资金被退回至该钱包的一个已使用地址。
伪造地址以 GyQ3 结尾,真实地址也是如此。
攻击者发现了一个与正确地址后四位字符相匹配的地址。

ZachXBT 还指出了一种类似的地址毒化骗局,影响了 Phantom 钱包用户。伪造的地址通过隐藏首尾字符来规避一眼识别。
版本 4.8.3 仅对钱包拥有的输入进行签名检查
另一位用户 Raju-K12 于 10 月 18 日私下报告称,他们提高了伪造交易的费率并遭受了损失。维护人员表示,一些服务器已在野外环境中运行此攻击。
提交 90fe308 增加了对钱包拥有的“is_mine”输入签名的检查,然后再将内存池交易添加到本地历史记录中。版本 4.8.3 已于 10 月 23 日打上 git 标签,二进制文件于次日发布。
Electrum 仍仅检查钱包控制的输入。因此,未确认的 incoming 交易未经检查。
这是因为客户端没有完整的脚本解释器。
对于无法升级的用户,Electrum 的变通方法是:在签署任何内容(包括费率提升)之前,验证输出地址和金额。那些仅连接到自身服务器的用户从未受到影响。
Electrum 过去曾发布过紧急修复补丁。2018年1月,在谷歌研究员 Tavis Ormandy 发现某个网站可以检测到该端口并盗取资金后,Electrum 关闭了一个已开放约两年的 JSON RPC 接口。
Cryptopolitan 报道称,关于 Coldcard 种子生成漏洞的警告于 7 月发出,当天约有 500 个钱包中的约 594 BTC(价值约 3800 万美元)被盗。
如果您正在阅读这篇文章,说明您已经领先一步。请继续通过我们的通讯保持关注。











