本文へスキップ
MameTechNews
バックエンド

Electrum 4.8.3、悪意あるサーバーが送金を差し替える攻撃を修正 手数料の引き上げで攻撃者に送金させる手口が実際に発生

## POINTS

  • 4.8.3未満の全バージョンが対象、悪意あるサーバーが宛先を差し替えた偽の未承認取引を表示
  • 手数料の引き上げ(RBF)で偽取引に署名させる手口が実際に使われ、1件で資金を失った
  • 4.8.3は自分の入力を使う未承認取引の署名を検証、信頼できるサーバーにだけ接続していれば影響なし

Electrumは軽量クライアントの設計上、接続先サーバーから届く未承認(mempool)の取引を信頼しており、署名を検証していなかった。アドバイザリによると、攻撃サーバーはクライアントが送信した取引tx1を中継せずに保持し、出力を攻撃者のアドレスに置き換えた無効な取引tx2を履歴に返す。ウォレットにはtx2が未承認取引として表示され、利用者がRBF(Replace-by-Fee)で手数料を引き上げると、tx2が正しく署名されて攻撃者に送金されてしまう。報告では、攻撃者のアドレスは正規アドレスの末尾4文字と一致するよう作られ、tx2は手数料ゼロで作られていた。2件の報告のうち1件で実際に資金が失われた。4.8.3(コミット90fe308)では、自分のウォレットが持つ入力を使う未承認取引の署名を、ローカル履歴に加える前に検証するようになった。ただし外部からの入金取引は引き続き検証の対象外。自前など信頼できるサーバーにだけ接続している場合は影響を受けない。更新できない場合は、手数料の引き上げを含めて署名のたびに宛先と金額を確認するよう呼びかけている。4.8.3ではほかに、失効したeMudhra/emSign証明書を信頼しないようcertifiとpipも更新された。