Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

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

Quick assessment

Affected
bitcoinjs bitcoinjs-lib
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

bitcoinjs-lib 是一个用于 Node.js 和浏览器的 JavaScript 比特币库。在版本 2.3.0 至 5.2.1、6.1.8 和 7.0.2 之间,fastMerkleRoot 函数在填充奇数层默克尔树时,会将最后一个节点与其自身进行哈希运算,但并未报告由此产生的相邻重复哈希值。受影响的区块根验证功能最初以 Block.checkMerkleRoot() 的形式随 Block.calculateMerkleRoot() 一同引入;而在后续版本中,验证逻辑通过 checkTxRoots() 和

CVSS 9.3 · Critical EPSS 0.18% · P8

Affected Version Matrix 3

VendorProduct Version RangeStatus
bitcoinjs bitcoinjs-lib >= 2.3.0, < 5.2.1 affected
>= 6.0.0, < 6.1.8 affected
>= 7.0.0-rc.0, < 7.0.2 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-107846

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
bitcoinjs-lib: Undetected merkle node duplication in block root computation validates a forged transaction list
Source: CVE Program / CVE List V5
Vulnerability Description
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 Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L/SC:N/SI:H/SA:H
Source: CVE Program / CVE List V5
Vulnerability Type
完整性检查值验证不恰当
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
bitcoinjs bitcoinjs-lib >= 2.3.0, < 5.2.1 -

II. Public POCs for CVE-2026-107846

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-107846

请登录查看更多情报信息。

Other References for CVE-2026-107846 (4)

IV. Related Vulnerabilities