Coldcard multisig parser let a crafted script pass as change and steal it
Who is affected
Coldcard multisig users on firmware before 3.0.6 who signed a PSBT altered in transit could lose their change outputs to an attacker. Coinkite states there is no evidence the bug was exploited.
What happened
On 19 December 2019 Coinkite released Coldcard firmware 3.0.6 with a security fix for multisig users, describing a PSBT-tampering issue that could allow a man-in-the-middle to steal funds. Coinkite updated its post with details in March 2020, after the disclosure period, and credits Dmitry Petukhov, who found the issue while integrating the Coldcard into his work. Petukhov published a description of the attack on 30 March 2020.
According to Coinkite, older firmware did not parse multisig scripts tightly enough: an attacker could craft a redeem script that the device read as change returning to the user’s wallet while the funds actually went to the attacker’s keys. Petukhov explains that the parser stopped at the first OP_CHECKMULTISIG and did not check that it was the last opcode, so a script could start with a multisig of the device’s own keys and continue with a second multisig of attacker keys that actually controls the output. Coinkite notes the attack did not require knowing the full xpubs of the signing keys.
Coinkite says it fixed the bug by simplifying the parsing code and, as an extra safeguard, now shows change outputs on the confirmation screen. Only multisig wallets were affected.
What Coinkite advises:
- Multisig users should upgrade to 3.0.6 or later.
- Avoid transmitting xpub values in PSBT files unless they are required.
Coldcard is an air-gapped hardware wallet for Bitcoin, made by Coinkite, that stores private keys offline and signs transactions without internet exposure.
Firmware is the software that runs on a hardware wallet itself: it generates keys, shows transaction details on the screen and signs.
Read full definitionMultisig (multi-signature) is a security feature that requires multiple private keys to authorize a transaction, enhancing protection against unauthorized access in blockchain networks.
Read full definitionPSBT (Partially Signed Bitcoin Transaction) is a Bitcoin transaction format that allows multiple parties to sign a transaction incrementally before finalizing it.
Read full definitionOptimism is an Ethereum Layer 2 optimistic rollup network. It batches transactions off-chain for faster, cheaper processing while inheriting Ethereum's security.
Read full definitionXPUB is an extended public key (xpub) in hierarchical deterministic (HD) wallets. It derives child public keys and addresses from a master public key without exposing private keys.
Read full definitionA private key is the secret number that proves ownership of a crypto address and signs its transactions. Whoever has it controls the funds.
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 definitionSources
Independent reporting and research this entry was checked against.
Learn more
Guides on protecting yourself against this type of incident (Firmware vulnerability) and the glossary terms that describe it.
Can Hardware Wallets Be Hacked?
Hardware wallets are extremely secure, but not invincible. Understand the real risks and attack vectors.
Read GuideIs a Hardware Wallet Really Safe?
Hardware wallets are the safest option for most people — but you can still make mistakes. Here's what to know.
Read GuideFirmware
Firmware is the software that runs on a hardware wallet itself: it generates keys, shows transaction details on the screen and signs.
Bootloader
A bootloader is a small program that initializes hardware and loads the main operating system or firmware on a device, often used in blockchain hardware wallets for secure startup.
Firmware Update
Firmware Update installs new low-level software on a hardware wallet to fix bugs, enhance security, or add features in cryptocurrency devices.
Cite this entry
WalletInsights. “Coldcard multisig parser let a crafted script pass as change and steal it”. Hardware wallet security incident tracker. Last verified November 4, 2026. https://walletinsights.io/en/security-incidents/coldcard-multisig-change-script-parser-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.
All Coinkite incidents
- COLDCARD firmware generated weak seeds
- COLDCARD Delta PIN mode let a private key be recovered from two signatures
- Ledger Donjon reads part of Coldcard Mk4's second secure element by double laser fault
- Ledger Donjon extracts Coldcard Mk3 secrets with multiple laser fault injections
- Coldcard registered multisig wallets without checking it was a cosigner