Ledger、承認中に悪意あるdAppによるトランザクションすり替えを可能にするイーサリアム署名の脆弱性を修正
重要ポイント
- •Ledgerのイーサリアムアプリの署名フローにおける競合状態の欠陥により、悪意あるdAppがデバイスに一方のトランザクションを表示させながら、実際には別のトランザクションに署名させる可能性がありました。
- •研究者らは8月21日にこの脆弱性をLedgerへ報告し、Ledgerデバイス上で動作を検証しました。脆弱性は8月24日に公開されました。
- •問題はLedgerのイーサリアムアプリのアップデートで修正されました。イーサリアムのdAppを利用するユーザーは、Ledger Walletをアップデートし、最新バージョンのアプリをインストールすべきです。
- •この脆弱性は秘密鍵を露出させたものでも、Ledgerデバイス全体を侵害したものでもなく、特定の署名フローで表示されるトランザクションデータの整合性に関するものでした。
- •この事件は、ハードウェアウォレットの画面上でトランザクションの詳細を検証し続けることの重要性を浮き彫りにしています。この目標は、イーサリアムのClear Signingイニシアチブによっても支えられています。

Ledgerは、特定のイーサリアム・トランザクション署名フローにおける脆弱性にパッチを適用しました。この脆弱性が悪用されると、悪意ある分散型アプリケーション(dApp)が、ユーザーによるトランザクション確認中に別のトランザクションへ差し替える可能性がありました。この欠陥は、dAppとLedgerのイーサリアム署名プロセスの間のセキュリティ境界、すなわちユーザーが自分の承認しようとしているトランザクションを正確に確認するためにハードウェアウォレットに依存する部分に存在していました。
この脆弱性は、セキュリティ研究者がイーサリアムアプリの署名フローにおける競合状態(レースコンディション)の欠陥を特定したことを受けて、8月24日に公開報道されました。報告によると、攻撃者は署名プロセスを悪用し、デバイスにはあるトランザクションを表示させながら、実際には別のトランザクションに署名させる可能性がありました。
攻撃の仕組み
リスクの中心は、トランザクションの確認から最終承認までの間隔にありました。デバイスへの接続にアクセスできる悪意あるdAppは、この時間帯に異なるトランザクションデータを差し込もうとする可能性がありました。
このようなシナリオは、ハードウェアウォレットの中核的な保護機能のひとつ、すなわち署名前に信頼できるデバイス上でトランザクションの詳細を検証できるという機能を損なうおそれがあります。Ledgerのイーサリアム向けツールは、Clear Signingアーキテクチャを通じて人間が読める形式のトランザクション情報を重視しており、承認内容の検証を容易にするよう設計されています。
セキュリティ報告によると、この脆弱性は8月21日にLedgerへ報告され、研究者らはLedgerデバイス上でこの動作を検証しました。問題はその後、イーサリアムアプリのアップデートで対処されました。
ユーザーは署名前にアップデートを
イーサリアムのdAppを利用するLedgerユーザーは、Ledger Walletをアップデートし、デバイス向けに提供されている最新のイーサリアムアプリをインストールすべきです。また、重要な信頼境界はデバイスが署名対象の内容を表示する瞬間であるため、承認前にハードウェアウォレット上で直接トランザクションの詳細を確認し続けることも重要です。
この脆弱性は、Ledgerデバイスが全体的に侵害されたことや、秘密鍵が露出したことを意味するものではありません。報告された問題は、特定の署名フローにおいて表示されるトランザクションデータの整合性に関するものでした。
この事件は、イーサリアムアプリケーションが一目では読み取りにくいスマートコントラクトとのやり取りにますます依存するようになる中で、ハードウェアウォレットを使用する場合でもトランザクションの検証が引き続き重要である理由を浮き彫りにしています。イーサリアムのより広範なClear Signingイニシアチブは、不透明なコントラクトデータではなく理解しやすいトランザクション詳細をユーザーに表示することで、この検証レイヤーの強化を目指しています。