BitcoinウォレットのElectrumは、10月24日に、悪意のあるサーバーがBitcoin支払いを攻撃者に転送できる高嚴重度の脆弱性を修正するため、バージョン4.8.3をリリースしました。この脆弱性は4.8.3より前のすべてのバージョンに影響します。修正は10月23日にコードリポジトリでタグ付けされ、実行可能ファイルのリリースはその翌日に提供されました。
この攻撃は、Electrumが未確認トランザクションを処理する際にサーバーを信頼する仕組みを悪用します。侵害されたサーバーは、ユーザーの実際の支払いを隠蔽し、攻撃者の送金先アドレスと手数料ゼロの競合トランザクションに置き換えることができます。以前のElectrumは、署名を確認せずに、この置き換えられたトランザクションをウォレットの履歴で正当な取引として表示していました。手数料がゼロであるため、支払いが停止しているように見えます。
ユーザーが支払い手数料を増やしたかのように見せかけ、資金を攻撃者に送る新しい有効なトランザクションを署名し、ネットワークにブロードキャストします。元の支払いはネットワークに到達しないため、手数料が増加したトランザクションが実際に最初にブロードキャストされた支払いとなります。この警告を公開したElectrum開発者SomberNightは、攻撃者が対象受信者のアドレスの最終4文字と一致する宛先アドレスを生成できることを指摘しました。そのため、ユーザーがその4文字のみを確認すると、表面上一致しているように見えることになります。
アドバイザリーによると、一部のサーバーが現在攻撃を実行中であり、2件のユーザー報告を挙げている。ユーザーdannydeezyは10月11日に異常なサーバー活動を最初に報告した。この操作された取引はローカルサーバーに残ったが、資金は失われていない。もう1人のユーザーRaju-K12は、操作された取引の手数料を増やした後、10月18日に資金を失ったと報告している。
バージョン4.8.3では、未確認トランザクションをローカル履歴に記録する前に、ウォレットに属する入力の暗号署名を検証します。このパッチにより、攻撃者が偽造できない有効な署名なしに、サーバーがユーザーのアドレスを含む偽のトランザクションを挿入するのを防ぎます。ただし、Electrumは、受信ウォレットに属する入力が一つも存在しない場合、受信トランザクションの署名検証を行いません。SomberNightは、アドバイザリーに残されたこのギャップを認識し、このギャップを解消するにはさらに多くの作業が必要であると述べました。
Electrumは2018年に始まり、悪意のあるサーバーを用いて偽の更新通知を表示するキャンペーンに直面しました。このキャンペーンは2020年までにElectrumユーザーから約2500万ドルを盗み取っていました。Electrumは誰でもサーバーを運用できるため、このような攻撃が可能になっています。
ユーザー自身が運営するサーバーにのみ接続しているユーザーには影響ありません。すぐに更新できないユーザーは、どのトランザクションにも署名する前に、宛先アドレスと数量を手動で確認してください。Electrum 4.8.3は、プロジェクトのウェブサイトおよびGitHubで利用可能です。

