Skip to main content

Search...

Popular searches

Ledger Bitcoin app accepted a hidden change output without confirmation

LedgerHigh

Who is affected

Ledger Nano S users with a Bitcoin app older than 1.3.3 who approved a transaction prepared by compromised wallet software could send additional funds to an attacker without seeing that output on the device. Ledger states the issue is fixed in Bitcoin app 1.3.3 and firmware 1.5.5.

What happened

Ledger’s security bulletin LSB-004 describes a flaw in the Bitcoin app for the Ledger Nano S that let an attacker add an unverified change output to a transaction, which, according to Ledger, could lead to sending funds to an arbitrary address without an additional confirmation on the device. Ledger notes that the original transaction still had to be confirmed by the user.

Sergey Lappo, then at Mycelium, writes that he found the problem in November 2018 while adding SegWit support to Mycelium’s Android wallet. According to his write-up, the device did not check whether change went to a change address at all and hid the second output when an empty change path was passed. A compromised wallet application could therefore show the user only a small payment while a hidden second output sent funds to the attacker. The attacker needs to control the wallet software talking to the device; Lappo’s demonstration used a modified Mycelium build that was never published.

Lappo reported the issue through Ledger’s bug bounty programme. He writes that a fix was released in December 2018 and firmware including the new Bitcoin app in January 2019. Ledger announced Nano S firmware 1.5.5 on 16 January 2019 with a critical security fix in the Bitcoin app reported by Mycelium, crediting Lappo. LSB-004 names Bitcoin app 1.3.3 and firmware 1.5.5 as fixed. Lappo published his write-up on 21 February 2019. The bulletin itself is dated 11 November 2018, which is earlier than the fix dates in Lappo’s account.

What Ledger advises:

  • Update to Nano S firmware 1.5.5 or Bitcoin app 1.3.3 or later.
BlockchainBitcoin

Bitcoin (BTC) is the first decentralized cryptocurrency, launched in 2009. It uses blockchain technology for secure, peer-to-peer digital transactions without intermediaries.

Read full definition
TransactionChange Address

A change address is a new address where leftover cryptocurrency is sent after a transaction, ensuring any unspent funds are returned to the sender in blockchain transactions.

Read full definition
TransactionSegWit

SegWit (Segregated Witness) is a Bitcoin upgrade that moves transaction signatures to a separate data structure, increasing block capacity and enabling efficient scaling solutions like the Lightning Network.

Read full definition
HardwareFirmware

Firmware is the software that runs on a hardware wallet itself: it generates keys, shows transaction details on the screen and signs.

Read full definition

Sources

Independent reporting and research this entry was checked against.

  1. Ledger Donjon — Ledger Security Bulletin 004: Bitcoin change address injection (11 Nov 2018)
  2. Sergey Lappo — How (not) to lose your life savings while paying for a coffee with your Ledger Hardware Wallet (21 Feb 2019)
  3. Ledger — Ledger releases new Nano S firmware update (16 Jan 2019)

Learn more

Guides on protecting yourself against this type of incident (Firmware vulnerability) and the glossary terms that describe it.

Cite this entry

WalletInsights. “Ledger Bitcoin app accepted a hidden change output without confirmation”. Hardware wallet security incident tracker. Last verified November 4, 2026. https://walletinsights.io/en/security-incidents/ledger-bitcoin-app-change-address-injection-2019/

Corrections and right of reply

Vendors, researchers and readers can send corrections or statements to security@walletinsights.io. We check them against the sources, update the entry and record the change in its log.