bitcoinjs-lib Undetected Merkle Node Duplication Vulnerability
- Investigating(current)
- Trending(upcoming)
- Workaround available(upcoming)
- Resolved(upcoming)
Executive summary
An undetected merkle node duplication vulnerability exists in bitcoinjs-lib's fastMerkleRoot computation, allowing forged transaction lists to be validated. The issue is fixed in versions 5.2.1, 6.1.8, and 7.0.2.
No verified workaround yet
None of the linked reports describe a mitigation. Follow this incident to hear when one appears.
Official fix`fastMerkleRoot` pads an odd level by hashing the last node with itself without reporting it, and `checkTxRoots` fails to look for repeated transactions.
Evidence
1 report · 1 CVEShow
- [1]CVE First reportbitcoinjs-lib: Undetected merkle node duplication in block root computation validates a forged transaction list(opens security advisory in a new tab)
Fixed in: bitcoinjs-lib 5.2.1, bitcoinjs-lib 6.1.8, bitcoinjs-lib 7.0.2. Critical severity (CVE-2026-107846). Affected: bitcoinjs-lib (npm) >= 2.3.0, < 5.2.1, >= 6.0.0, < 6.1.8, >= 7.0.0-rc.0, < 7.0.2. ### Summary `fastMerkleRoot` pads an odd level by hashing the last node with itself. It does not report that it did so, and `checkTxRoots` never looks for repeated transactions. A peer can therefore duplicate transactions to fill the pad and produce a block with a different transaction list but…
by GitHub Advisory Database 0upvotes 0comments
Timeline
- First report on security advisory
bitcoinjs-lib: Undetected merkle node duplication in block root computation validates a forged transaction list
Source