Yishi
Yishi|2026年08月27日 10:53
在旧版本的 Ledger Ethereum 应用中,根本原因是显示内容和底层缓冲区中存储的交易之间存在竞争条件。 一个简化的例子: 1. 向设备发送交易 A,例如发送 0.01 ETH 到 0x111...111。 2. Ledger 解析交易 A 并在屏幕上显示。 3. 当用户仍在审核交易 A 时,发送交易 B,例如对 0x111...111 的无限授权。 4. 交易 B 可以覆盖底层交易缓冲区中的交易 A。 用户仍然看到的是交易 A,但设备最终签署的是交易 B。 实际攻击涉及 P1_FIRST + BASIC,随后是第二个 P2_STORE。STORE 是在之前的 Ledger 版本中引入的,使这种覆盖路径成为可能。 Ledger 在 1.22.3 版本中修复了这个问题,通过在现有交易仍在处理中时拒绝新交易来解决。 为什么这不会影响 OneKey? OneKey 从一开始就以这种方式工作。当一个交易正在等待确认或签署时,设备不会接受另一个交易。 因此,没有窗口让第二个交易覆盖当前正在审核的交易。 换句话说,Ledger 在 1.22.3 中新增的行为,早已是 OneKey 的默认行为。
+4
曾提及
分享至:

脉络

热门快讯

APP下载

X

Telegram

Facebook

Reddit

复制链接

热门阅读