Description
The bitcoinj library is a Java implementation of the Bitcoin protocol. Prior to 0.17.1, ScriptExecution.correctlySpends() contains two fast-path verification bugs for standard P2PKH and native P2WPKH spends in core/src/main/java/org/bitcoinj/script/ScriptExecution.java. In both branches, bitcoinj verifies an attacker-controlled signature/public-key pair but fails to verify that the public key is the one committed to by the output being spent. As a result, any attacker keypair can satisfy bitcoinj's local verification for arbitrary P2PKH and P2WPKH outputs. This vulnerability is fixed in 0.17.1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| bitcoinj | bitcoinj | < 0.17.1 | — |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
GitHub 1 repository
-
dntaskmehow/BABEF ★ 0 · Oct 21, 2026
This framework has been RE-WEAPONIZED & exploits CVE-2026-44714, a critical signature verification flaw in the bitcoinj library (Java implementation of the Bitcoin protocol). Unpatched applications a…
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.bitcoinj:bitcoinj-core | >= 0.15, < 0.17.1 | 0.17.1 | GHSA-hfcf-v2f8-x9pc |