VulnTideExploited vulnerabilities, by vendor. Data as of .
Not in CISA KEVPublished CVSS 9.3 criticalEPSS 0.2% probability of exploitation in 30 days
bitcoinjs

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

Is it exploited?

Not on CISA's list. CISA has not added it to the Known Exploited Vulnerabilities catalog as of . If CISA adds it, this page shows it as known exploited.

How likely is exploitation in the next 30 days?
0.2%

EPSS score, percentile 7.6 of all scored records. A probability estimated by FIRST, not a report of exploitation.

CISA's SSVC assessment in the CVE record lists exploitation as poc.

How severe?
9.3 Critical

CVSS v4.0 base score, given by the CNA

What should I do?

CISA has set no required action, because the vulnerability is not in KEV.

No patch or vendor advisory is listed in the CVE record. Check bitcoinjs's advisories.

Which versions are affected?

Affected

  • >= 2.3.0, < 5.2.1
  • >= 6.0.0, < 6.1.8
  • >= 7.0.0-rc.0, < 7.0.2

Versions by product

Source: CISA KEV 2026.11.10, as of ; FIRST EPSS, as of ; CVE List, as of . About the data.

Description

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

bitcoinjs-lib is a JavaScript Bitcoin library for Node.js and browsers. From 2.3.0 until 5.2.1, 6.1.8, and 7.0.2, fastMerkleRoot pads odd Merkle-tree levels by hashing the final node with itself but does not report adjacent duplicate hashes. The affected block-root verifier was introduced as Block.checkMerkleRoot() alongside Block.calculateMerkleRoot(), while later versions expose validation through checkTxRoots() and __checkMerkleRoot; these validation paths can accept a recomputed root without checking for mutation. A peer can append duplicate transactions so a different transaction list retains the original Merkle root, block header, proof of work, and block identifier. Consumers that rely on block-root validation, including explorers, exchange indexers, or SPV clients, can process a duplicated transaction twice or blacklist the shared block hash and reject the honest block. This issue is fixed in versions 5.2.1, 6.1.8, and 7.0.2.

Source: CVE List, as of . About the data.

What to do

Advisories and patches

No patch, vendor advisory or mitigation is listed in the CVE record. Check bitcoinjs's own security advisories for a fix, and compare your version with the affected versions below.

This summary is based on the CVE record as of . Check the vendor's advisory before you act: affected versions and fixes can change.

Affected products and versions

Versions by product, as listed in the CVE record (1 product)
bitcoinjs bitcoinjs-lib
StatusVersions
Affected>= 2.3.0, < 5.2.1
Affected>= 6.0.0, < 6.1.8
Affected>= 7.0.0-rc.0, < 7.0.2

Source: CVE List, as of . About the data.

Weakness

CWE-354
  • CWE-354: Improper Validation of Integrity Check Value

CWE and CAPEC are maintained by MITRE; the entries are those named in the CVE record.

Timeline

DateEvent
CVE record published
CVE record last updated

References

4