Ledger patches Ethereum app race bug that could swap signatures

Ledger released Ethereum app v1.22.2 to fix a flaw that let a connected dApp start a second signing command and cause the device to sign different transaction data.

Ledger published Ethereum app version 1.22.2, listed in the app changelog on Aug. 12 and signed in the repository on Aug. 13, to close a signing-state race that could let a connected dApp replace a transaction while the device still displayed the original details.

Security researcher TestMachine reported on Aug. 22 that a malicious dApp with WebHID access could send a second signing command while a transaction was under review. The second command could overwrite the transaction held in memory without triggering a new on-device review, so approving might return a signature for substituted data rather than the transaction shown. TestMachine validated the behavior on the Ledger Flex model.

Ledger’s code commits show two targeted changes: the app now refuses to start a new signing session when a review is active, and it rejects approval callbacks if the signing state no longer matches expected values. Those safeguards address the two entry points TestMachine described: starting a new signing command during review and approval callbacks that proceeded without verifying the app’s signing state.

TestMachine reported that shared code in the Ethereum app build targets could extend the flaw to Nano X, Nano S Plus, Stax and Apex; the signed app manifest lists those models alongside Flex. Public, device-level validation of the attack path has been limited to Flex, and Ledger has not published a model-specific firmware minimum tied to the issue.

There are discrepancies in the disclosure timeline. Ledger’s changelog and repository tags date the fix to Aug. 12–13, while TestMachine published the finding on Aug. 22 and initially stated the fix was not yet released. Ledger’s chief technology officer, Charles Guillemet, wrote on Aug. 23 that Ledger Donjon found a bug in “certain clear signing flows” and that the fix had been deployed roughly two weeks before his comment. Ledger has not confirmed which earlier app releases were affected.

Ledger and TestMachine report no confirmed in-the-wild exploitation, no lost funds and no extraction of private keys linked to the flaw. Ledger has advised users to confirm they have Ethereum app v1.22.2 installed and to keep device firmware, apps and client software up to date.

The vulnerability is separate from previous incidents involving a Zilliqa app nonce issue and the 2023 Connect Kit compromise that used a malicious JavaScript library.

Articles by this author