<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-07T20:06:48.936541+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-319124</id>
    <title>EUVD-2026-319124</title>
    <updated>2026-10-07T20:06:48.939052+00:00</updated>
    <content>EUVD-2026-319124</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-319124"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-44714</id>
    <title>fkie_cve-2026-44714</title>
    <updated>2026-10-07T20:06:48.939083+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-44714"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-hfcf-v2f8-x9pc</id>
    <title>GHSA-hfcf-v2f8-x9pc — bitcoinj has a ScriptExecution P2PKH/P2WPKH Verification Bypass</title>
    <updated>2026-10-07T20:06:48.939117+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Maven: org.bitcoinj:bitcoinj-core</p>
<p>### Summary
`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`.</p>
<p>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.</p>
<p>This doesn't affect the SPV (simple payment verification) trust model, as this model follows PoW and doesn't verify input signatures at all.</p>
<p>### Details
The issue is in the optimized branches of `ScriptExecution.correctlySpends(...)`.</p>
<p>In the `P2PKH` fast path at `core/src/main/java/org/bitcoinj/script/ScriptExecution.java:1042`, the code:</p>
<p>- parses the attacker-supplied signature from `scriptSig`
- parses the attacker-supplied public key from `scriptSig`
- computes the sighash against the victim output's `scriptPubKey`
- checks only `pubkey.verify(sigHash, signature)`</p>
<p>It never enforces the missing `P2PKH` binding:</p>
<p>- `HASH160(pubkey) == ScriptPattern.extractHashFromP2PKH(scriptPubKey)`</p>
<p>That means the `OP_DUP OP_HASH160 &lt;hash&gt; OP_EQUALVERIFY OP_CHECKSIG` semantics are not actually enforced in this fast path.</p>
<p>Relevant code:</p>
<p>```java
} else if (ScriptPattern.isP2PKH(scriptPubKey)) {
    if (chunks.size() != 2)
        throw new ScriptException(...);
    TransactionSignature signatu…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-hfcf-v2f8-x9pc"/>
  </entry>
</feed>
