A race condition in versions before 1.22.2 let a malicious dapp swap the payload the device signed for the one the user approved. Ledger fixed it quietly two weeks before a researcher went public.
Ledger patched a race-condition vulnerability in its Ethereum hardware wallet app that could have let a malicious decentralised application substitute one transaction for another between the moment a user approved it on-screen and the moment the device signed it. The company shipped the fix as version 1.22.2 on 12 August. The bug only became public knowledge on 24 August, when a security researcher published the technical details.
The flaw sat in the app's APDU command queue, the protocol Ledger devices use to shuttle instructions between the host computer and the secure element. In normal use, a wallet interface sends a transaction to the device, the user reviews the amount and destination on the tiny screen, and the private key signs whatever the user just approved. The race condition allowed a dapp to slot in a different transaction after the review step but before the signature was produced. What the user saw and what the device signed could be two different things.
That is the failure mode Ledger's clear-signing design exists to eliminate. The screen is there precisely because the host machine cannot be trusted to render a truthful preview. If a device can be tricked into signing something other than what its screen displays, the security model collapses. A user approving a routine token allowance could instead sign an unlimited approval to an attacker's contract, and the attacker could drain the wallet at leisure once the signature was on-chain.
No losses have been publicly attributed to the bug. Exploiting it required a compromised dapp interface, precise timing against the APDU protocol, and a target still running the older Ethereum app. Ledger CTO Charles Guillemet said the patch had been in users' hands for nearly two weeks before disclosure and urged holders to update rather than panic.
The controversy is not the bug itself. Hardware wallets ship with bugs, and race conditions in message-queue code are exactly the class of vulnerability a mature security programme catches. The controversy is what Ledger did with it. Version 1.22.2 went out on 12 August with release notes that did not mention the vulnerability. Users who read the changelog would have seen routine language and had no reason to prioritise the update. The public only learned there had been a critical fix when a researcher going by TestMachine posted the technical write-up on 24 August.
Ledger has been here before. The 2023 Ledger Recover backlash — when the company announced a subscription seed-phrase backup service without preparing users for the shift in threat model — cost the firm a chunk of the trust it had accumulated over a decade. The response then was to publish more, faster, and to explain design choices in the open. Quiet patches to critical signing bugs cut against that pledge. Users have to know a fix is critical to install it promptly, and hardware wallet users are the population least likely to auto-update.
The defensive case for silent patching is that publishing a vulnerability before users have applied the fix creates a window in which attackers can weaponise the bug against slow updaters. That is a real concern. But it is not a new one, and the industry has settled on a coordinated-disclosure norm in which vendor and researcher agree on a public timeline that lets both patch adoption and honest reporting happen. What appears to have happened here is that Ledger patched, published a bland changelog, and hoped the underlying issue would not be noticed. It was noticed.
Hardware wallets have had a bad few months. 594 Bitcoin left 500 Coldcard wallets in a 25-minute sweep at the end of July, and Galaxy has since traced a third wave of thefts taking cumulative losses past 1,367 bitcoin. The Ledger flaw is a different attack surface — the signing protocol rather than the seed distribution — but the pattern is the same: the assumption that a hardware device removes trust from the host machine keeps failing at the seams where the two have to communicate.
The trade-off between simplicity and safety in wallet UX is what generates this category of bug. Ledger's Ethereum app has to speak the same signing protocol as every dapp on the network, and the complexity of that surface (WalletConnect, browser extensions, permit-style token approvals, EIP-712 typed data) keeps expanding. Every new signing pattern is another opportunity for a mismatch between what the user thinks they are approving and what the device actually produces. The APDU race condition is one specific instance of a category that will keep generating vulnerabilities for as long as the signing surface keeps growing.
The immediate action is straightforward. Anyone running Ledger's Ethereum app should update to version 1.22.2 or later. The signing flow is the whole point of the device, and a patched signing flow is the difference between a hardware wallet and an expensive USB stick. Whether the company discloses the next one on its own terms, before a researcher forces the issue, is what should be watched.