Skip to content

← Public intelligence

npm package

bitcoinjs-lib

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

1 actionable advisory, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Critical, CVSS 9.3npmAmendedPublished

    bitcoinjs-lib: Undetected merkle node duplication in block root computation validates a forged transaction list

    CVE-2026-107846 · GHSA-8vv3-6qpc-gpw6

    Affected
    • npm bitcoinjs-lib >= 2.3.0, < 5.2.1; >= 6.0.0, < 6.1.8; >= 7.0.0-rc.0, < 7.0.2
    Fixed in
    5.2.16.1.87.0.2· Vendor fix available
    Issue
    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 the same merkle root. The block hash and block id do not change, so the header still carries valid proof of work. In the proof of concept a real mainnet block goes from nine transactions to ten, and separately to twelve, with the same id every time, and checkTxRoots accepts all three. Bitcoin Core rejects this case through the mutated flag in ComputeMerkleRoot and the bad-txns-duplicate reason in CheckBlock. This is CVE-2012-2459. Details A bitcoin merkle tree pads an odd level by hashing the last node with itself. Duplicating transactions to fill that pad therefore yields the same root for a different transaction list. This is CVE-2012-2459. Bitcoin Core detects it in ComputeMerkleRoot, which scans…

    Recommended action: Upgrade to 7.0.2, 6.1.8 or 5.2.1 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →