Home

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.

PUBLISHED Reserved 2026-05-07 | Published 2026-05-15 | Updated 2026-05-16 | Assigner GitHub_M




HIGH: 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Problem types

CWE-347: Improper Verification of Cryptographic Signature

Product status

< 0.17.1
affected

References

github.com/...tcoinj/security/advisories/GHSA-hfcf-v2f8-x9pc

github.com/...ommit/2bc5653c41d260d840692bc554690d4d79208f9c

github.com/...ommit/b575a682acf614b9ff95cacbdeb48f86c3ababe0

cve.org (CVE-2026-44714)

nvd.nist.gov (CVE-2026-44714)

Download JSON